Liệt kê mạng là một trong những giai đoạn thiết yếu để bảo mật các cuộc tấn công mạng nhưng nó có thể mất rất nhiều thời gian và công sức tùy thuộc. Có rất nhiều công cụ scan mạng chúng cực kỳ hữu ích. trong đó phần mềm GoScan, một công cụ xây dựng trên Nmap, cung cấp một cách tự động để liệt kê các mạng và dịch vụ một cách nhanh chóng.
GoScan vs Máy quét mạng khác
GoScan là một trình quét mạng tương tác được viết bằng Go, tự động hóa các khía cạnh nhất định của Nmap và liệt kê dịch vụ . Nó có tính năng tự động hoàn thành tab thông minh và cơ sở dữ liệu SQLite ở mặt sau để duy trì kết nối và dữ liệu, ngay cả trong môi trường không ổn định. GoScan cũng có các tích hợp bên ngoài khác, chẳng hạn như sqlmap , DNSenum , Hydra , Nikto , EyeWitness và NBTScan .
GoScan khác với các máy quét mạng khác ở chỗ nó giống khung hơn, được xây dựng dựa trên các công cụ khác cho mục đích trừu tượng hóa và tự động hóa. Nó chủ yếu sử dụng chức năng của Nmap để thực hiện quét cổng và liệt kê dịch vụ nhưng cũng tận dụng các máy quét khác như Nikto.
Mặc dù GoScan rất hữu ích để liệt kê nhanh chóng các mạng và dịch vụ , nhưng có một vài điều có thể được cải thiện. Đầu tiên, một khi trong khung công tác, không có cách nào để đưa ra các lệnh hệ điều hành cơ bản , nghĩa là bạn cần một cửa sổ hoặc tab thiết bị đầu cuối mới. Cũng không phải là một cách dễ dàng để hủy bỏ việc quét, điều này thật đáng tiếc bởi vì một số trong số này có thể mất nhiều thời gian. Cũng có thể có nhiều mô đun liệt kê dịch vụ hơn, nhưng nhìn chung, GoScan là một công cụ tuyệt vời giúp mọi việc trở nên dễ dàng.
Nhận GoScan được cài đặt và sẵn sàng
Chúng tôi sẽ sử dụng Metasploitable 2 làm mục tiêu và Kali Linux làm máy cục bộ của chúng tôi, nhưng bạn có thể sử dụng một thiết lập khác để kiểm tra công cụ.
Để tải xuống GoScan , chúng tôi có thể sử dụng wget để lấy trực tiếp từ GitHub:
~# wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_amd64.zip
--2020-03-01 12:03:35-- https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_amd64.zip
Resolving github.com (github.com)... 192.30.253.112
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/133977183/d62b7180-45d6-11e9-95a0-a27738c7d5cb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200301T170336Z&X-Amz-Expires=300&X-Amz-Signature=30bf07eb967416e5c5f5bdd2f11e144d4b41f55675e75558f435b2fb36b5982d&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dgoscan_2.4_linux_amd64.zip&response-content-type=application%2Foctet-stream [following]
--2020-03-01 12:03:36-- https://github-production-release-asset-2e65be.s3.amazonaws.com/133977183/d62b7180-45d6-11e9-95a0-a27738c7d5cb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200301T170336Z&X-Amz-Expires=300&X-Amz-Signature=30bf07eb967416e5c5f5bdd2f11e144d4b41f55675e75558f435b2fb36b5982d&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dgoscan_2.4_linux_amd64.zip&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.177.3
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.177.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5031753 (4.8M) [application/octet-stream]
Saving to: ‘goscan_2.4_linux_amd64.zip’
goscan_2.4_linux_amd64.zip 100%[===========================>] 4.80M 6.60MB/s in 0.7s
2020-03-01 12:03:37 (6.60 MB/s) - ‘goscan_2.4_linux_amd64.zip’ saved [5031753/5031753]
Tiếp theo, giải nén các lưu trữ :
~# unzip goscan_2.4_linux_amd64.zip
Archive: goscan_2.4_linux_amd64.zip
inflating: goscan
Chúng ta có thể kiểm tra loại tệp nào đang sử dụng lệnh tệp :
~# file goscan
goscan: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, Go BuildID=pGoWXkwAVk8V427XeEiD/_gHLR9pQcRgIcaS6-h1Y/3NHjKMCsn272cDOntZE2/lQhv-s-msoGBONoodm2c, BuildID[sha1]=b0465bb281d341d50215219d6a7611a5b8876c60, with debug_info, not stripped
Có vẻ như nó đã được thực thi.
Tiếp theo, chúng ta có thể di chuyển nhị phân vào thư mục / bin / , điều này sẽ cho phép chúng ta chạy nó từ bất cứ đâu . Sử dụng lệnh mv :
~# mv ./goscan /bin/goscan
Bây giờ, khi chúng tôi chạy GoScan, chúng tôi sẽ tự động được đưa vào khung:
~# goscan
_________ ___________________________ __
__ ____/_______ ___/_ ____/__ |__ | / /
_ / __ _ __ \____ \_ / __ /| |_ |/ /
/ /_/ / / /_/ /___/ // /___ _ ___ | /| /
\____/ \____//____/ \____/ /_/ |_/_/ |_/
goscan (v.2.4)
Marco Lancini [@LanciniMarco]
[-] Created directory: /root/.goscan
[-] Connected to DB
Tùy chọn 1 Quét Ping
GoScan chứa các tính năng gợi ý lệnh tự động và hoàn thành tab, giúp dễ sử dụng. Chỉ cần bắt đầu nhập một lệnh và một gợi ý và mô tả của nó sẽ hiển thị:
[goscan] > he
help Show help
Menu trợ giúp có lẽ là phần quan trọng nhất của GoScan. Ở đây chúng ta có thể tìm thấy tất cả các lệnh có sẵn, mô tả và cú pháp của chúng:
[goscan] > help
[*] GoScan automates the scanning and enumeration steps of a penetration test
[*] Available commands:
+----------------------------+------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
| AREA | COMMAND | SYNTAX |
+----------------------------+------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
| Load target | Add a single target via the CLI (must be a /32) | load target SINGLE <IP> |
| Load target | Upload multiple targets from a text file or folder | load target MULTI <path-to-file> |
| Host Discovery | Perform a Ping Sweep | sweep <TYPE> <TARGET> |
| Load Host Discovery | Add a single alive host via the CLI (must be a /32) | load alive SINGLE <IP> |
| Load Host Discovery | Upload multiple alive hosts from a text file or folder | load alive MULTI <path-to-file> |
| Port Scan | Perform a port scan | portscan <TYPE> <TARGET> |
| Load Port Scan | Upload nmap port scan results from XML files or folder | load portscan <path-to-file> |
| Service Enumeration | Dry Run (only show commands, without performing them | enumerate <TYPE> DRY <TARGET> |
| Service Enumeration | Perform enumeration of detected services | enumerate <TYPE> <POLITE/AGGRESSIVE> <TARGET> |
| Special Scan - EyeWitness | Take screenshots of websites, RDP services, and open VNC servers (KALI ONLY) | special eyewitness |
| Special Scan - Domain Info | Extract Windows domain information from enumeration data | special domain <users/hosts/servers> |
| Special Scan - DNS | Enumerate DNS (nmap, dnsrecon, dnsenum) | special dns DISCOVERY <domain> |
| Special Scan - DNS | Bruteforce DNS | special dns BRUTEFORCE <domain> |
| Special Scan - DNS | Reverse Bruteforce DNS | special dns BRUTEFORCE_REVERSE <domain> <base_IP> |
| Show | Show targets | show targets |
| Show | Show live hosts | show hosts |
| Show | Show detailed ports information | show ports |
| Utils | Set configs from file | set config_file <PATH> |
| Utils | Set output folder | set output_folder <PATH> |
| Utils | Modify the default nmap switches | set nmap_switches <SWEEP/TCP_FULL/TCP_STANDARD/TCP_VULN/UDP_STANDARD> <SWITCHES> |
| Utils | Modify the default wordlists | set wordlists <FINGER_USER/FTP_USER/...> <PATH> |
| Utils | Exit this program | exit
Để bắt đầu, chúng ta cần tải một mục tiêu. Chúng tôi có thể tải nhiều địa chỉ IP hoặc, trong trường hợp của chúng tôi, IP duy nhất của máy mục tiêu của chúng tôi:
[goscan] > load target SINGLE 10.10.0.50
[*] Imported target: 10.10.0.50
Tiếp theo, hãy thực hiện quét ping :
[goscan] > sweep PING 10.10.0.50
[*] Starting Ping Sweep
> [-] Created directory: /root/.goscan/10.10.0.50/sweep [-] Executing command: nmap -n -sn -PE -PP 10.10.0.50 -oA /root/.goscan/10.10.0.50/sweep/ping_10.10.0.50 [*] [ping] Nmap work in progress on host: 10.10.0.50 [+] [ping] Nmap finished on host: 10.10.0.50 [+] [ping] Output has been saved at: /root/.goscan
Đầu tiên, GoScan tạo một thư mục để chứa kết quả. Thư mục có thể được cấu hình đến một vị trí tùy chỉnh, nhưng mặc định hoạt động tốt. Tiếp theo, chúng ta có thể thấy lệnh Nmap mà nó gọi và thực thi, và nó cho chúng ta biết khi nào nó kết thúc.
Nếu chúng ta duyệt đến thư mục vừa tạo, nơi kết quả được lưu trữ, chúng ta có thể thấy đầu ra có một vài định dạng khác nhau:
~# ls .goscan/10.10.0.50/sweep/
ping_10.10.0.50.gnmap ping_10.10.0.50.nmap ping_10.10.0.50.xml
Tùy chọn 2 Quét cổng
Khả năng quét cổng của GoScan có lẽ là tính năng mạnh mẽ nhất của nó. Khi chúng ta bắt đầu nhập portscan , chúng ta có thể thấy nhiều loại quét mà nó có thể thực hiện:
[goscan] > portscan
TCP-FULL Perform FULL TCP scan
TCP-STANDARD Perform TCP scan (top 200)
TCP-PROD Perform PROD TCP scan (T3, no scripts)
TCP-VULN-SCAN Perform TCP VULN scan (vulscan.nse)
UDP-STANDARD Perform UDP scan (common ports)
UDP-PROD Perform PROD UDP scan (T3, no scripts)
Chẳng hạn, chúng ta có thể chạy quét TCP đầy đủ:
[goscan] > portscan TCP-FULL 10.10.0.50
[*] Starting full TCP port scan
> [-] Created directory: /root/.goscan/10.10.0.50/portscan [-] Executing command: nmap -Pn -sT -sC -A -T4 -p- 10.10.0.50 -oA /root/.goscan/10.10.0.50/portscan/tcp_full_10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 [*] [tcp_full] Nmap work in progress on host: 10.10.0.50 …
Hoặc quét UDP trên các cổng phổ biến:
[goscan] > portscan UDP-STANDARD ALL
[*] Starting UDP port scan (common ports)
> [-] Executing command: nmap -Pn -sU -sC -A -T4 -p19,53,69,79,111,123,135,137,138,161,177,445,500,514,520,1434,1900,5353 10.10.0.50 -oA /root/.goscan/10.10.0.50/portscan/udp_standard_10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 [*] [udp_standard] Nmap work in progress on host: 10.10.0.50 …
Chúng tôi cũng có thể sử dụng lệnh tải để tải bất kỳ kết quả quét bên ngoài nào, như của Nmap :
[goscan] > load portscan nmap_results.xml
Lệnh show có thể được sử dụng để hiển thị bất kỳ thông tin nào hiện đang được GoScan lưu trữ. Chúng tôi có thể xem các mục tiêu:
[goscan] > show targets
+------------+---------+
| ADDRESS | STEP |
+------------+---------+
| 10.10.0.50 | SWEEPED |
+------------+---------+
Và hiển thị trạng thái của máy chủ, bao gồm thông tin và cổng hệ điều hành:
[goscan] > show hosts
+------------+--------+-----------------+------+-------------------------------------+
| ADDRESS | STATUS | OS | INFO | PORTS |
+------------+--------+-----------------+------+-------------------------------------+
| 10.10.0.50 | up | Linux 3.2 - 4.9 | | * 5355/tcp open : llmnr |
| | | | | * 19/udp closed : chargen |
| | | | | * 53/udp closed : domain |
| | | | | * 69/udp closed : tftp |
| | | | | * 79/udp closed : finger |
| | | | | * 111/udp open|filtered: rpcbind |
| | | | | * 123/udp closed : ntp |
| | | | | * 135/udp open|filtered: msrpc |
| | | | | * 137/udp closed : netbios-ns |
| | | | | * 138/udp closed : netbios-dgm |
| | | | | * 161/udp open|filtered: snmp |
| | | | | * 177/udp closed : xdmcp |
| | | | | * 445/udp closed : microsoft-ds |
| | | | | * 500/udp open|filtered: isakmp |
| | | | | * 514/udp open|filtered: syslog |
| | | | | * 520/udp closed : route |
| | | | | * 1434/udp closed : ms-sql-m |
| | | | | * 1900/udp closed : upnp |
| | | | | * 5353/udp open|filtered: zeroconf |
| | | | | |
+------------+--------+-----------------+------+-------------------------------------+
Và một cái nhìn có tổ chức hơn về các cảng và dịch vụ:
[goscan] > show ports
+------------+----------+---------------+--------------+
| HOST | PORT | STATUS | SERVICE |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 5355/tcp | open | llmnr |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 19/udp | closed | chargen |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 53/udp | closed | domain |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 69/udp | closed | tftp |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 79/udp | closed | finger |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 111/udp | open|filtered | rpcbind |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 123/udp | closed | ntp |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 135/udp | open|filtered | msrpc |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 137/udp | closed | netbios-ns |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 138/udp | closed | netbios-dgm |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 161/udp | open|filtered | snmp |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 177/udp | closed | xdmcp |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 445/udp | closed | microsoft-ds |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 500/udp | open|filtered | isakmp |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 514/udp | open|filtered | syslog |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 520/udp | closed | route |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 1434/udp | closed | ms-sql-m |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 1900/udp | closed | upnp |
+------------+----------+---------------+--------------+
| 10.10.0.50 | 5353/udp | open|filtered | zeroconf |
+------------+----------+---------------+--------------+
Tùy chọn 3 Dịch vụ liệt kê
Ngoài khả năng quét cổng, GoScan cũng cho phép chúng tôi liệt kê các dịch vụ đang chạy trên mục tiêu. Nhập kiểu liệt kê cho chúng ta thấy các mô-đun có sẵn, bao gồm Finger, FTP , HTTP, RDP và SMB :
[goscan] > enumerate
ALL Automatically identify open services and enumerate them
FINGER Enumerate FINGER
FTP Enumerate FTP
HTTP Enumerate HTTP
RDP Enumerate RDP
SMB Enumerate SMB
Mỗi dịch vụ cũng có một vài tùy chọn, bao gồm DRY, chỉ thực hiện chạy ; POLITE.
[goscan] > enumerate HTTP
DRY Only show the commands that would be performed, without performing them
POLITE Avoid bruteforcing
BRUTEFORCE Include bruteforce scripts
Ví dụ: chúng ta có thể thực hiện quét HTTP
[goscan] > enumerate HTTP DRY 10.10.0.50
[*] Starting service enumeration
> [+] [HTTP] Enumeration finished on host: 10.10.0.50 [+] [HTTP] Output has been saved at: /root/.goscan
Tùy chọn 4 Quét đặc biệt
GoScan cũng chứa một vài bản quét đặc biệt có thể hữu ích cho hoạt động trinh sát . Nhập đặc biệt tại dấu nhắc để xem các tùy chọn có sẵn:
[goscan] > special
eyewitness Take screenshots of websites, RDP services, and open VNC servers (KALI ONLY)
domain Extract (windows) domain information from enumeration data
dns Perform DNS enumeration
Các nhân chứng quét kết hợp các công cụ nhân chứng, trong đó sẽ đưa ảnh chụp màn hình của trang web, dịch vụ RDP, và các máy chủ VNC . Nhắc nhở duy nhất ở đây là EyeWitness cần được cài đặt trong hệ thống PATH để nó hoạt động.
Chúng tôi cũng có thể sử dụng quét tên miền để liệt kê thông tin tên miền nhất định , bao gồm người dùng, máy chủ và máy chủ:
[goscan] > special domain
users Extract users from enumeration data
hosts Extract hosts from enumeration data
servers Extract servers from enumeration data
Quá trình quét dns sẽ thực hiện một số kỹ thuật liệt kê DNS , chẳng hạn như khám phá và cưỡng bức:
[goscan] > special dns
DISCOVERY Enumerate DNS (nmap, dnsrecon, dnsenum)
BRUTEFORCE Bruteforce DNS
BRUTEFORCE_REVERSE Reverse Bruteforce DNS
GoScan có thêm một vài tiện ích có thể đặt thư mục đầu ra, các công tắc Nmap được sử dụng và danh sách từ mặc định.
Kết thúc
Hôm nay, đã khám phá GoScan và làm thế nào nó có thể được sử dụng để nhanh chóng liệt kê các mạng và dịch vụ. Đầu tiên, tải xuống và cài đặt công cụ. Sau đó, Thiết lập qua một số tùy chọn, bao gồm quét ping, quét cổng, liệt kê dịch vụ. Nói chung, GoScan là một khung hữu ích giúp việc liệt kê mạng dễ dàng hơn.