Reconnaissance

Reconnaissance

Reconnaissance is gathering information about a target system or network, to identify vulnerabilities that could be exploited. This process is known as Footprinting or Information Gathering

Two main types of reconnaissance:

Passive: Passive reconnaissance involves gathering information without directly interacting with the target system. This can be done through publicly available source, such as websites and research engines.

Active: Active reconnaissance involves directly interacting with the target system. This can include techniques such as network scans and vulnerability scans and can raise the risk of detection

Ethical Hacker / Pentester looking for?

  1. Network Information: Domain name, Internal Domain, Ip Address, Unmonitored/private websites, TCP/UDP Services, VPN/IDS/IPS/access controls, VPN info, Phone numbers/VoIP, Network topology, Network devices

  2. Operating System Information: Users and group names/info, Banner grabbing, Routing tables, SNMP, System architecture, Remote systems, System names, Passwords, Dumpster diving(Lặn thùng rác), Version, Patch level

  3. Organization Information: Organization website, Company directory, Employee information, Business structure, Location details, Comments in HTML source code, Security policies deployed, webserver links, Background of organization, Marketing and advertising, Prevailing events(sự kiện thịnh hành), Partners, Phone, Financial information

External Network Pentester looking for? (external networks include public Wi-Fi networks, cloud-based services, and other third-party networks)

Network Information, Operating systems and applications, Publicly accessible information, Phone, Website Mirroring, Archive Sites, Github recon, Whois, Web server Content, Email Header, Google and Search Engine, People Sites, Social Network, Job Sites, Alert Website.

Internal Network Network Pentester looking for?

IP Address, Internal DNS, Private Website, Dumpster Diving, Shoulder, Surfing

Web Application Pentester looking for?

  1. Network Information: Ip address, Domain name, Network topology, Open ports and services

  2. Web Application Information: Web server technology used, Application framework, Source code, Session management, Input validation and data handling, Authentication and authorization mechanisms

  3. Web Server Information: Operating system, Web server software version, Server-side scripting language and version, Database management system and version

  4. Web Application Components: Dynamic content generation, Client-side scripting languages, Third-party components and libraries

Passive Reconnaissance

  1. Visit the target website

Employee information: Name, Job titles, Responsibilities

Contact information: Physical addresses, Email Address, Phone numbers

  1. Sử dụng tệp robots.txt và sitemap

Sitemap cung cấp thông tin về cấu trúc và nội dung của trang web, trong khi tệp robots.txt hướng dẫn về những phần nào của trang web mà chúng có thể và không thể truy cập.

Website/Tool: My sitemap generator., XML Sitemaps Generator., Screaming frog

  1. Source code Review

  • Comments

  • Backend Language

  • Scripts

  • External resources

  • Metadata

  1. Web archive : có thể cung cấp thông tin chi tiết có giá trị về lịch sử, quá trình phát triển và nội dung của trang web

  • External resources

  • Website structure

  • Website functionality

  • Website Traffic

Website để tìm Web archive: The Wayback Machine., Archive Today., Archive IT., Librarian

  • Server-side scripting language Information.

  • Operating System Information.

  • System architecture

  • Web server software Information.

Website hỗ trợ: BuiltWith, Wappalyzer, WhatRuns.

WHOIS: Cung cấp thông tin quan trọng về việc đăng ký và quyền sở hữu tên miền, có thể tìm kiếm qua Whois, Securitytrails, ViewDNS, Central OPS, IPVoid

Reverse Whois: Phương pháp tìm kiếm tên miền và các thông tin khác liên quan đến một cá nhân hoặc tổ chức cụ thể, có thể qua Domainiq, WhoXY, ViewDNS, ICANN

WHOIS history: Cung cấp thông tin về những thay đổi được thực hiện đối với chi tiết đăng ký tên miền theo thời gian

  1. IP Address

Tìm tên miền từ IP Addresses: có thể qua các website như DNS Tools, Central OPS, DNS Lookup, DNS SPY, DNS Record Viewer hoặc qua các lệnh dig, host, nslookup

Theo dõi lịch sử IP Address: Giúp điều tra các mối đe dọa bảo mật tiềm ẩn hoặc hoạt động đáng ngờ, có thể sử dụng các tool như ViewDNS, Securitytrails

Xác định vị trí địa lý của IP Address, sử dụng một số công cụ như Shodan, IP location, IP2location, IPinfo, IPvoid, IPregistry, Check-host

Truy tìm Route của một IP Address: Sử dụng Network-Tools, IP2location, Central OPS, DNS-Checker

Hay còn gọi là Google Dorking, là kỹ thuật sử dụng để khám phá thông tin nhạy cảm trên internet bằng cách sử dụng các kỹ thuật tìm kiếm nâng cao với Google search.

  1. Shodan

Shodan là một công cụ tìm kiếm cho các thiết bị kết nối internet. Nó cho phép người dùng tìm kiếm các loại thiết bị cụ thể (ví dụ: webcam, bộ định tuyến, máy chủ, v.v.) và cung cấp thông tin về các thiết bị có thể truy cập công khai trên internet. Shodan sử dụng nhiều kỹ thuật quét khác nhau để thu thập thông tin về các thiết bị, bao gồm các cổng mở, thông tin biểu ngữ và siêu dữ liệu khác.

  1. OSINT Framework

OSINT là viết tắt của Open-Source Intelligence, dùng để chỉ việc thu thập, phân tích và phổ biến thông tin từ các nguồn công khai. Các nguồn này có thể bao gồm các nguồn trực tuyến và ngoại tuyến, chẳng hạn như nền tảng truyền thông xã hội, blog, bài báo, hồ sơ công khai, báo cáo của chính phủ và các nguồn thông tin công khai khác.

  1. IP logger

IP logger là công cụ tạo liên kết hoặc touchable , khi nhấp hoặc truy cập, sẽ ghi lại địa chỉ IP và siêu dữ liệu khác của thiết bị được sử dụng để truy cập

  1. Email Tracking OR Spoofing

Email tracking có thể sử dụng để trinh sát, thu thập thông tin về mục tiêu như IP, vị trí địa lý và thông tin thiết bị của họ. Ngoài ra còn giúp attacker xác định xem mục tiêu đã mở hay nhấn vào email hay chưa, giúp attacker hiểu thêm về mức độ quan tâm của mục tiêu với nội dung cụ thể.

Email spoofing có thể được sử dụng để thu thập thông tin nhạy cảm, đánh cắp thông tin xác thực hoặc triển khai malware trên thiết bị nạn nhân

  1. Technical Support Forums

References: https://medium.com/@riteshs4hu/a-beginners-guide-to-passive-reconnaissance-techniques-and-tools-b08502ba93

https://github.com/InfoSecWarrior/Offensive-Recon/tree/main?tab=readme-ov-file

Active Reconnaissance

1. Port Scanning: Kỹ thuật này bao gồm quét các cổng của hệ thống mục tiêu để xác định các cổng, dịch vụ và ứng dụng mở. Thông tin này có thể được sử dụng để xác định các lỗ hổng tiềm ẩn trong hệ thống mục tiêu.

Một vài kỹ thuật quét cổng:

  • TCP Connect Scanning: Cố gắng thiết lập kết nối TCP đầy đủ với hệ thống mục tiêu. Nếu kết nối thành công, cổng được coi là mở và dịch vụ hoặc ứng dụng đang chạy trên cổng đó có thể được xác định

  • SYN Scanning: Kỹ thuật liên quan đến việc gửi các gói SYN đến các cổng của hệ thống mục tiêu. Nếu cổng mở, hệ thống mục tiêu sẽ phản hồi bằng một gói SYN-ACK. Nếu cổng đóng, hệ thống mục tiêu sẽ phản hồi bằng một gói RST

  • UDP Scanning: Gửi các gói UDP đến các cổng của hệ thống đích. Nếu hệ thống đích phản hồi, cổng được coi là mở và dịch vụ hoặc ứng dụng đang chạy trên cổng đó có thể được xác định

  • XMAS Scanning: Gửi các gói tin có cờ FIN, URG và PUSH được đặt đến các cổng của hệ thống đích. Nếu hệ thống đích phản hồi, cổng được coi là mở và dịch vụ hoặc ứng dụng đang chạy trên cổng đó có thể được xác định

Lưu ý: Dễ bị phát hiện bởi IDS và có thể kích hoạt báo động hoặc cảnh báo

Công cụ và phần mềm được sử dụng: Nmap, Masscan, Zenmap(Nmap with GUI), Angry IP Scanner, Superscan, Netcat, …

2. Network Mapping: Lập bản đồ mạng là quá trình xác định các thiết bị và cấu trúc mạng. Kỹ thuật này được sử dụng để xác định số lượng thiết bị trên mạng, hệ điều hành của chúng và các dịch vụ mà chúng đang chạy.

Một vài kỹ thuật:

  • Ping Sweeping: Gửi một loạt ICMP echo requests đến một phạm vi địa chỉ IP để xác định máy chủ nào đang hoạt động trên mạng

  • Port Scanning

  • SNMP Scanning: Truy vấn các thiết bị hỗ trợ SNMP trên mạng để thu thập thông tin về cấu hình của chúng, bao gồm hệ điều hành, phiên bản phần mềm và giao diện mạng. Kỹ thuật này có thể được sử dụng để tạo danh mục chi tiết các thiết bị mạng và xác định bất kỳ cấu hình sai hoặc lỗ hổng nào

  • Công cụ khám phá mạng: Như NetDiscover, có thể được sử dụng để tự động quét mạng và lập bản đồ cấu trúc mạng. Các công cụ này có thể phát hiện các thiết bị mạng và kết nối của chúng, cung cấp hình ảnh trực quan về cấu trúc mạng.

  • Packet Sniffing: Thu thập và phân tích lưu lượng mạng để xác định các thiết bị và dịch vụ đang chạy trên mạng => Xác định các lỗ hổng tiềm ẩn, chẳng hạn như mật khẩu chưa được mã hóa hoặc dữ liệu nhạy cảm được truyền dưới dạng rõ.

Công cụ và phần mềm được sử dụng: Nmap, Zenmap, NetDiscover, SolarWinds Network Topology Mapper, LantopoLog

3. Vulnerability Scanning: Quét lỗ hổng là quá trình xác định lỗ hổng trong hệ thống hoặc mạng mục tiêu. Kỹ thuật này bao gồm việc sử dụng các công cụ tự động/thủ công để quét hệ thống mục tiêu nhằm tìm lỗ hổng đã biết

Quá trình quét lỗ hổng thường bao gồm các bước sau:

Bước 1: Xác định tài sản trong hệ thống hoặc mạng cần quét: máy chủ, máy trạm, thiết bị mạng hoặc bất kỳ thiết bị nào khác trong mạng …

Bước 2: Quét lỗ hổng bằng công cụ tự động hoặc kỹ thuật thủ công

Bước 3: Phân tích kết quả

Một số công cụ tự động: Nessus, OpenVAS, Qualys, Rapid7, Acunetix, Burp Suite, Metasploit

4. DNS Enumeration: DNS enumeration là quá trình thu thập thông tin về các bản ghi hệ thống tên miền (DNS). Kỹ thuật này có thể được sử dụng để xác định các mục tiêu tiềm năng cho một cuộc tấn công mạng.

Một vài kỹ thuật DNS Enumeration:

Zone transfers: Yêu cầu một bản sao của DNS zone file từ máy chủ DNS. Chuyển vùng có thể cung cấp nhiều thông tin về tên miền, gồm các bản ghi DNS, tên miền và địa chỉ IP được liên kết với tên miền.

DNS queries: Truy vấn máy chủ DNS để biết thông tin cụ thể về tên miền, chẳng hạn như mail exchange (MX) records, service (SRV) records, và name server (NS) records

Brute-force attacks: Mục tiêu là tìm ra tên miền và tên miền phụ ẩn không dễ nhìn thấy

Social engineering: Ví dụ, kẻ tấn công có thể liên hệ với nhân viên của tổ chức và đóng giả là thành viên của bộ phận CNTT, yêu cầu thông tin về cơ sở hạ tầng DNS.

Công cụ: DNSenum, Fierce, Recon-ng, Nmap, theHarvester, Dig, DNSenum, nslookup

5. Service Fingerprinting: Dấu vân tay dịch vụ là quá trình xác định loại, phiên bản và cấu hình của các dịch vụ đang chạy trên hệ thống mục tiêu. Thông tin này có thể được sử dụng để xác định lỗ hổng và khai thác nào có thể áp dụng cho hệ thống và có thể điều chỉnh cuộc tấn công của mình cho phù hợp.

Một số kỹ thuật phổ biến:

  • Banner grabbing: Nắm bắt thông tin biểu ngữ hoặc tiêu đề của một dịch vụ để phản hồi yêu cầu kết nối. Thông tin này có thể tiết lộ loại và phiên bản của dịch vụ, thông tin về hệ điều hành, phần mềm máy chủ web, framework ứng dụng.

  • Phân tích giao thức: Phân tích lưu lượng mạng được trao đổi giữa hệ thống mục tiêu và kẻ tấn công => Tìm các giao thức cụ thể được các dịch vụ sử dụng …

  • Quét cổng

  • Quét lỗ hổng

Công cụ: Nmap, Netcat, Httprint, WhatWeb, Fingerprinter, p0f

6. Password Cracking: Bẻ khóa mật khẩu là quá trình cố gắng truy cập vào hệ thống mục tiêu bằng cách đoán hoặc bẻ khóa mật khẩu. Kỹ thuật này thường được sử dụng kết hợp với các kỹ thuật trinh sát chủ động khác.

Kỹ thuật phổ biến:

  • Brute-force attacks

  • Dictionary attacks

  • Hybrid attack

Công cụ: John the Ripper, Hashcat, Aircrack-ng(wireless network), Cain and Abel, Hydra, Ophcrack(Windows password), …

Nmap

TCP Communication Flags: TCP Control Bít (Flags)

  • Kết nối TCP hợp lệ bắt đầu bằng quá trình bắt tay 3 bước (three-way handshake)

  • Handshake được sử dụng để trao đổi “Sequence Number” nhăm theo dõi việc gửi và truyền đạt thứ tự gói

UDP: truyền tải hướng không kết nối, không đảm bảo tính tin cậy khi truyền dữ liệu

  • UDP đơn giản hơn so với TCP, không có khái niệm “trạng thái kết nối”

  • Ít lựa chọn hơn cho việc dò quét.

  • Dò quét chậm và ít tin cậy hơn.

Nmap (Network Mapper) là một công cụ quét mạng mã nguồn mở, được phát triển bởi Gordon “Fyodor” Lyon & công sự. Không chỉ đơn thuần là công cụ dò quét cổng, Nmap còn có khả năng quét lỗ hổng bảo mật thông tin qua Nmap Scripting Engine (NSE).

Scan IP address (Targets)

Command

Description

nmap 10.0.0.1

Scan a single host IP

nmap 192.168.10.0/24

Scan a Class C subnet range

nmap 10.1.1.5-100

Scan the range of IPs between 10.1.1.5 up to 10.1.1.100

nmap -iL hosts.txt

Scan the IP addresses listed in text file “hosts.txt”

nmap 10.1.1.3 10.1.1.6 10.1.1.8

Scan the 3 specific IPs only

nmap www.somedomain.com

First resolve the IP of the domain and then scan its IP address

Chú ý: Không chỉ định gì thêm thì lệnh sẽ mặc định khám phá first host và quét 1000 cổng phổ biến nhất theo mặc định.

Port Related Commands

Command

Description

nmap -p80 10.1.1.1

Scan only port 80 for specified host

nmap -p20-23 10.1.1.1

Scan ports 20 up to 23 for specified host

nmap -p80,88,8000 10.1.1.1

Scan ports 80,88,8000 only

nmap -p- 10.1.1.1

Scan ALL ports for specified host

nmap -sS -sU -p U:53,T:22 10.1.1.1

Scan ports UDP 53 and TCP 22

nmap -p http,ssh 10.1.1.1

Scan http and ssh ports for specified host

Different Scan Types

Command

Description

nmap -sS 10.1.1.1

TCP SYN Scan (best option)

nmap -sT 10.1.1.1

Full TCP connect scan

nmap -sX 10.1.1.1

XMAS Scan

nmap -sF 10.1.1.1

FIN Scan

nmap -sN 10.1.1.1

NULL Scan

nmap -sU 10.1.1.1

Scan UDP ports

nmap -sP 10.1.1.0/24

Do a Ping scan only

nmap -Pn 10.1.1.1

Don’t ping the hosts, assume they are up.

Tương tự –PN hoặc –P0

Nmap Network Probe/Sweeping Options:

  • PE: Gửi ICMP Echo Request (ICMP type 8)

  • PSports : Sử dụng TCP SYN với các cổng chỉ định trong danh sách cổng(vd -PS22, 80)

  • sn -sP: Chỉ thăm dò (ping only)

  • Pn: Không thăm dò, giả định chúng đều đang chạy, Tương tự –PN hoặc –P0

  • PP: Gửi ICMP Timestamp Request (ICMP type 13)

  • PM: Gửi ICMP Address Mask Request (IVMP type 17)

  • PR: Sử dụng ARP tới những host xác định (chạy trên Windows hoặc UID 0 trên Linux), option này chỉ hoạt động với những host chạy trên cùng subnet và được sử dụng mặc định khi mục tiêu trên cùng subnet

Tối ưu Host Detection bằng cách chỉ định port phổ biến với option -PS

nmap -PS22, 23, 25, 80, 110 -PE -iL hosts.txt

Sau khi Host Detection, tiến hành quét cổng:

sudo nmap -n -PN -sT -sU -p- scanme.nmap.ort

Sử dụng cờ T: và U: để mix TCP và UDP port

– open: Chỉ show cổng mở

-F: Scan top 100 ports

–top-ports N: N port phổ biến nhất

Identify Versions of Services and Operating Systems

Command

Description

nmap -sV 10.1.1.1

Version detection scan of open ports (services)

nmap -O 10.1.1.1

Identify Operating System version

nmap -A 10.1.1.1

This combines OS detection, service version detection, script scanning and traceroute.

Scan Timings.

Command

Description

nmap -T0 10.1.1.1

Slowest scan (to avoid IDS)

Gửi gói tin mỗi 5 phút (serial)

nmap -T1 10.1.1.1

Sneaky (to avoid IDS)

Gửi gói tin mỗi 15 giây (serial)

nmap -T2 10.1.1.1

Polite (10 times slower than T3)

Gửi gói tin mỗi 0.4 giây (serial)

nmap -T3 10.1.1.1

Default scan timer (normal)

Thực hiện quét song song(parallel)

nmap -T4 10.1.1.1

Aggressive (fast and fairly accurate)

Không đợi phản hồi quá 1.25s (parallel)

nmap -T5 10.1.1.1

Very Aggressive (might miss open ports)

Chỉ dành tối đa 15 phút cho mỗi máy mục tiêu và chỉ đợi 0.3 giây phản hồi

Input and Output Types

Import a list of hosts using: -iL filename

Command

Description

nmap -oN [filename] [IP hosts]

Normal text format

nmap -oG [filename] [IP hosts]

Grepable file (useful to search inside file)

nmap -oX [filename] [IP hosts]

XML file

nmap -oA [filename] [IP hosts]

Output in all 3 formats supported:

normal => basename.nmap

greppable => basename.gnmap

XML => basename.xml

Ví dụ:

nmap -oN scan.txt 192.168.0.0/24 (this will scan the subnet and output the results in text file “scan.txt”)

Discover Live Hosts

Command

Description

nmap -PS22-25,80 10.1.1.0/24

Discover hosts by TCP SYN packets to specific ports (in our example here the ports are 22 to 25 and 80)

nmap -Pn 10.1.1.0/24

Disable port discovery. Treat all hosts as online.

nmap -PE 10.1.1.0/24

Send ICMP Echo packets to discover hosts.

nmap -sn 10.1.1.0/24

Ping scan.

NSE Scripts

Command

Description

nmap --script="name of script" 10.1.1.0/24

Run the specified script towards the targets.

nmap --script="name of script" --script-args="argument=arg" 10.1.1.0/24

Run the script with the specified arguments.

nmap --script-updatedb

Update script database

Other Useful Commands

Command

Description

nmap -6 [IP hosts]

Scan IPv6 hosts

nmap --proxies url1,url2

Run the scan through proxies

nmap --open

Only show open ports

nmap --script-help="script name"

Get info and help for the specified script

nmap -V

Show currently installed version

nmap -S [IP address]

Spoof source IP

nmap --max-parallelism [number]

Maximum parallel probes/connections

nmap --max-rate [number]

Maximum packets per second

Masscan

  • Masscan tập trung vào tốc độ: Có thể quét toàn bộ mạng dưới 6 phút, gửi 10 triệu gói tin mỗi giây

  • Sử dụng tương tự nmap:

masscan -p22, 445, 3389 –reate 15000 10.0.0.0/8

Kiểm tra port 22, 445, 3389

Giới han 15000 gói tin mỗi giây

Scan 10.x.x.x subnet

  • Luôn sử dụng “rate limit” khi scan

  • Đối với “large” scans, sử dụng định dạng binary của Masscan để lưu kết quả:

masscan -p0-65535 –rate 15000 -oB myscan.mass 10.0.0.0/8

Output formats:

▪ List (-oL): status, protocol, port, IP, timestamp

▪ XML (-oX): XML format

▪ Binary (-oB): Custom Masscan format

▪ Grepable (-oG)/JSON (-oJ)/Uniconscan (-oU)

  • Binary file format có thể chuyển đổi sang định dạng khác với --readscan

masscan --readscan myscan.mass -oX myscan.xml

  • Chuyển đổi binary file sang greppable:

masscan –open –readscan myscan.mass -oG myscan.grep

  • Sử dụng grep để trích xuất dữ liệu mong muốn:

“Get all live hosts”

grep /open/ myscan.grep | cut –d ‘ ‘ –f 2 | sort –uV >newscan.txt

“Get all ports”

grep /open/ myscan.grep | cut –d ‘ ‘ –f 4 |cut –d / -f 1| sort –nk 1| uniq >newscan.txt

Netcat

Netcat: General-purpose TCP/UDP network tool

  • Có sẵn trong nhiều phiên bản Linux(hoạt động trên cả Windows)

  • Nmap đã có sẵn ncat

Netcat nhận dữ liệu từ “Standard In: và gửi chúng qua mạng

Nhận dữ liệu từ mạng và đẩy tới “Standard Out”

Thông báo từ Netcat đẩy tới “Standard Error”

Sử dụng netcat để lấy thông tin dịch vụ:

nc -nv [targetIP] [port] sẽ lấy thông tin dịch vụ tương ứng với port

Lấy thông tin connection strings từ một loạt cổng trên máy mục tiêu:

Chỉ định phạm vị cổng X-Y.

nc –nvw2 [targetIP] [port-range]

$echo “” | nc –nvw2 [targetIP] [port-range

Moving Files:

Chúng ta có thể chuyển file với Netcat bằng cách chuyển hướng file (dữ liệu không được mã hóa).

sender#nc -w 3 [destination IP] 9899 < out.file

receiver#nc -lvp 9899 > out.file

Kiểm tra lại dữ liệu với md5sum

sender#md5sum out.file

c6779ec2960296ed9a04f08d67f64422

receiver#md5sum out.file

c6779ec2960296ed9a04f08d67f64422

Reverse & Bind shell withnc

References:

https://www.linkedin.com/pulse/active-reconnaissance-rajesh-gopalakrishnan

NMAP Commands Cheat Sheet & Tutorial with Examples (Download PDF) (networkstraining.com)

Last updated