內網滲透-判斷內網連通性

2021-12-29 HACK之道

判斷內網的連通性是指判斷機器能否上外網等。需要綜合判斷各種協議(TCP、HTTP、DNS、ICMP等)及埠通信的方式。

查看本機防火牆規則

netsh advfirewall firewall show rule name=all

基於ICMP協議

使用ping命令:

ping <IP位址或域名>

TCP協議

netcat(簡稱nc)被譽為網絡安全界的」瑞士軍刀」,是一個短小精悍的工具,通過使用TCP或UDP協議的網絡連接讀取數據。

使用方法:

nc -zv <IP位址 埠號>

Windows機器不自帶nc,因此在Windows機器上需要使用Telnet,而Telnet也需要我們自己開啟。

Windows10下開啟Telnet命令:

#開啟
dism /online /Enable-Feature /FeatureName:TelnetClient#關閉
dism /online /Disable-Feature /FeatureName:TelnetClient

Telnet使用方法:

telnet <IP位址 埠號>

UDP協議

使用腳本 Test-PortConnectivity.ps1

下載地址:https://gist.github.com/PrateekKumarSingh/61532b4f48edac1d893b

#Test-PortConnectivity -Source '127.0.0.1' -RemoteDestination 'dc1' -Port 57766#Test-PortConnectivity '127.0.0.1' 'dc1' 57766 -Protocol UDP -Iterate#Test-PortConnectivity 'localhost' 'dc2' 51753 -Protocol UDP#Test-PortConnectivity -Source $EUCAS -RemoteDestination $EUMBX -Port 135 -Iterate#Test-PortConnectivity -Source 'localhost' -RemoteDestination '127.0.0.1' -Port 135 -Iterate -protocol TCPFunction Test-PortConnectivity(){Param(
[Parameter(Position=0)] $Source,
[Parameter(Mandatory=$true,Position=1)] $RemoteDestination,
[Parameter(Mandatory=$true,Position=2)][ValidateScript({

If($_ -match "^[0-9]+$"){
$True
}
else{
Throw "A port should be a numeric value, and $_ is not a valid number"
}
})
]$Port,
[Parameter(Position=3)][ValidateSet('TCP','UDP')] $Protocol = 'TCP',
[Switch] $Iterate
)

#If $source is a local name, invoke command is not required and we can test port, withhout credentials
If($Source -like "127.*" -or $source -like "*$(hostname)*" -or $Source -like 'localhost')
{
Do
{
Telnet-Port $RemoteDestination $Port $Protocol;
Start-Sleep -Seconds 1 #Initiate sleep to slow down Continous telnet

}While($Iterate)

}
Else #Prompt for credentials when Source is not the local machine.
{
$creds = Get-Credential

Do
{
Foreach($Src in $Source)
{
Invoke-command -ComputerName $Src -Credential $creds -ScriptBlock ${Function:Telnet-Port} -ArgumentList $RemoteDestination,$port, $Protocol
}

#Initiate sleep to slow down Continous telnet
Start-Sleep -Seconds 1
}While($Iterate)

}}

Function Telnet-Port($RemoteDestination, $port, $Protocol){
foreach($Target in $RemoteDestination)
{
Foreach($CurrentPort in $Port)
{
If($Protocol -eq 'TCP')
{

try
{
If((New-Object System.Net.Sockets.TCPClient ($Target,$currentPort) -ErrorAction SilentlyContinue).connected)
{
Write-host "$((hostname).toupper()) connected to $($Target.toupper()) on $Protocol port : $currentPort " -back green -ForegroundColor White
}
}
catch
{
Write-host "$((hostname).toupper()) Not connected to $($Target.toupper()) on $Protocol port : $currentPort" -back red -ForegroundColor white
}
}
Else
{

#Create object for connecting to port on computer
$UDPClient = new-Object system.Net.Sockets.Udpclient

#Set a timeout on receiving message, to avoid source machine to Listen forever.
$UDPClient.client.ReceiveTimeout = 5000

#Datagrams must be sent with Bytes, hence the text is converted into Bytes
$ASCII = new-object system.text.asciiencoding
$Bytes = $ASCII.GetBytes("Hi")

#UDP datagram is send
[void]$UDPClient.Send($Bytes,$Bytes.length,$Target,$Port)
$RemoteEndpoint = New-Object system.net.ipendpoint([system.net.ipaddress]::Any,0)

Try
{
#Waits for a UDP response until timeout defined above
$RCV_Bytes = $UDPClient.Receive([ref]$RemoteEndpoint)
$RCV_Data = $ASCII.GetString($RCV_Bytes)
If ($RCV_Data)
{

Write-host "$((hostname).toupper()) connected to $($Target.toupper()) on $Protocol port : $currentPort " -back green -ForegroundColor White
}
}
catch
{
#if the UDP recieve is timed out
#it's infered that no response was received.
Write-host "$((hostname).toupper()) Not connected to $($Target.toupper()) on $Protocol port : $currentPort " -back red -ForegroundColor White
}
Finally
{

#Disposing Variables
$UDPClient.Close()
$RCV_Data=$RCV_Bytes=$null
}
}

}
}}

使用方法:

powershell -exec bypass -command "& {import-module C:\Users\GU\Desktop\Test-PortConnectivity.ps1; Test-PortConnectivity 'localhost' '127.0.0.1' 7777 -Iterate -protocol UDP}"

我們先在本機使用ncat開啟udp監聽,再運行此腳本。

只要監聽處出現Hi字樣,即表示連通。

HTTP協議

使用工具curl,有的Windows自帶curl,有的需要自己安裝。

使用方法:

curl www.baidu.com

FTP協議

遠程開啟21埠,並使用ftp連接。

DNS協議

Windows下使用nslookup,linux下還可以使用dig。

#Windows
nslookup www.baidu.com

#Linux
dig www.baidu.com

或者給自己加一個txt記錄

使用命令:

nslookup -type=TXT test.hackergu.com

利用工具查看開放埠

HostRecon

下載地址:https://github.com/dafthack/HostRecon

使用命令:

Import-Module .\HostRecon.ps1
Invoke-HostRecon -Portscan -TopPorts 128

代理伺服器

在內網中的機器,也可能是通過代理連接內網。

檢查方法:

查看內網中,與其他機器的網絡連接。

查看內網中是否有主機名類似於proxy的機器。

根據pac文件的路徑,將其下載下來並查看。

執行如下命令,進行確認。

curl -x proxy-ip:port www.baidu.com

END

作者:HackerGu

文章來源於https://hackergu.com/

相關焦點

  • 內網連通性判斷
    在完成內網信息收集的工作後,滲透測試人員需要判斷流量是否出得去,進的來。隱藏通信隧道技術常用於在訪問受限的網絡環境中追蹤數據流向和在非受信任的網絡中實現安全的數據傳輸。下面我們接著學習判斷內網的連通性-在學習判斷內網的連通性之前,大家可以去動手搭建一個真實內網環境來進行模擬搭建方法,我就不演示了(因為我的電腦,不支持我開2個以上的虛擬機)我給大家推薦一篇文章,大家可以去看看https://blog.csdn.net
  • 內網【滲透】
    >1.3 簡單區分正向代理是我們自己(Lhost)戴套(proxy)插進去,反向代理是她(Rhost)主動通過上位(proxy)坐上來(Lhost)zone裡內網滲透代理問題有人問了如何代理進行內網滲透的問題誠然,要進行內網滲透,代理是我們最先需要解決的問題,常見的代理方式大概可以分為這麼幾種:2.
  • 內網滲透---內網橫向滲透
    內網滲透---內網橫向滲透連載方向
  • Web安全:內網滲透工具
    在網絡空間中,大部分的安全問題都源自內網。事實上,黑客們一般談論的滲透都是指內網的滲透(包括外網等公開的網絡空間),即黑客在獲取目標網站的webshell並進入內網以後,就可通過內網滲透工具不斷提升自己權限,以達到控制整個內網的目的。
  • 滲透測試內網滲透之信息收集(一)
    本系列文章為作者平時學習內網滲透中所學匯總記錄,難免會有錯誤和不當之處,有相關問題可以留言指正。
  • 內網安全攻防之內網滲透測試基礎
    如果將企業的內網看成是一本字典,那麼內網裡的資源就是字典的內容, 活動目錄就相當於字典的索引。即活動目錄存儲的是網絡中所有資源的快捷方式,用戶通過尋找快捷方式而定位資源。在活動目錄中記錄的信息,被分為兩大部分,一部分保存在活動目錄資料庫文件 NTDS.dit 中,另一部分保存在被複製的文件系統上。
  • 內網滲透之nginx反向代理到公網到內網、拿域控
    我還自己恢復了一下虛擬機自帶的快照,看了看作者的心路歷程,作者以前就是用的192.168.1.0/24搭建的,怪不得是這個網段,所以我們打開5臺虛機配好網絡後,最好打一個我們自己的快照img環境配置到此結束戰鬥Web滲透信息收集kali掃描主機存活arp-scan -l
  • 手把手教你入門內網滲透之一
    在文章中我將儘可能把內容描述的通俗易懂一些,因為目前網上關於內網安全的文章不多也不少,但是對於新手來說都不怎麼友好,我在一開始學習的時候也遇到了許多困難,所以我想盡我所能的讓讀者能夠理解內網安全以及一系列的滲透過程。
  • 淺析內網信息收集
    >文章前言在滲透測試中信息收集的深度與廣度以及對關鍵信息的提取,直接或間接的決定了滲透測試的質量,本篇文章主要對內網中信息收集做一個簡單的歸納以及介紹主機信息在內網滲透測試中,當我們拿下一臺或多臺可控的主機(大多數情況下都是邊界主機)時,我們首先要對當前主機的信息進行簡易收集,常見的信息包括以下幾個方面:網絡配置通過執行以下命令查看當前機器是否處於內網,以及內網網段是多少,以及DNS地址、域名信息等等
  • 內網滲透學習-信息收集篇
    介紹當我們通過滲透進入內網環境後
  • [內網滲透] CFS三層網絡環境實戰
    一、環境搭建:①根據作者公開的靶機信息整理共有三個targets,目標是拿下三臺主機權限,且是三層的網絡環境,內網網段有192.168.22.0/24和192.168.33.0/24,添加兩張僅主機模式網卡,配置如下:  ②虛擬機網卡設置target1(centos) 雙網卡模擬內外網:外網:192.168.1.3,橋接模式內網:192.168.22.128
  • 內網滲透|ATT&CK紅隊評估實戰靶場-2
    ,如上期所說,此靶場難度為易,非常適合練習內網滲透各種姿勢!在上篇中,通過CS的會話net view功能,探測出內網存活主機如下,確定了域控IP為192.168.52.138。那麼此時就已經本次滲透測試結束了,有了域控帳號密碼還有其ip,當然這就是靶場的特殊性所在,練習為主。實戰很難有這麼順利。這裡就引出我們第一種方法,可以進行CS的psexec模塊進行登錄。
  • 獲取webshell到內網滲透一條龍
    獲取webshell到提權到內網滲透一條龍 其實相比起我這個文章來說,我覺得題目更霸氣。呵呵。
  • 技術乾貨 | 內網滲透學習-信息收集篇
    介紹當我們通過滲透進入內網環境後,面對的是一片未知區域。
  • 滲透測試之地基內網篇:域森林中實戰攻防
    如今有一家dayu公司,需要對自己的業務以及整體的內網框架體系進行隱患挖掘,授予權限我進行對dayu公司的滲透測試操作,在籤署了雙方的《滲透測試授權書》後,開始了對dayu公司的滲透之旅。跳開思維講,我此篇內容是內網滲透篇章,通過我的專欄:社工釣魚 -> 免殺過全殺軟 -> 內網滲透那麼我通過了社工釣魚的各種方式,將釣魚文件進行免殺後,成功釣魚到了該公司外圍人員計算機,並控制了該計算機權限獲得shell,並成功登錄對方電腦。
  • 內網滲透 | 基於IPC的橫向移動
    net share c$ /del13.恢復默認共享net share c$=c:15.對方的c盤映射為自己的z盤,其他盤類推(不推薦)net use z: \\192.168.1.1\c$ "1qaz@WSX" /user:"administrator"16.刪除映射的c盤,其他盤類推net use c: /del批量爆破內網中爆破弱口令時首選的便是使用
  • 內網穿透
    首先解釋一下「內網」與「外網」的概念:內網:即所說的區域網,比如學校的區域網,區域網內每臺計算機的IP位址在本區域網內具有互異性,是不可重複的。但兩個區域網內的內網IP可以有相同的。外網:即網際網路,區域網通過一臺伺服器或是一個路由器對外連接的網絡,這個IP位址是唯一的。也就是說內網裡所有的計算機都是連接到這一個外網IP上,通過這一個外網IP對外進行交換數據的。
  • 內網信息收集:WMIC使用總結
    當你的領導去安排你完成一項任務,其實是讓你完成任務的同時,學習不懂的領域和知識——大餘使用WMIC進行內網信息收集滲透測試的本質就是信息收集
  • 內網滲透之命令行滲透 - 滲透紅隊筆記
    大家好,這裡是 滲透攻擊紅隊 的第 19 篇文章,本公眾號會記錄一些我學習紅隊攻擊的復現筆記(由淺到深),不出意外每天一更在內網滲透的時候,如果想要登錄遠程桌面,會容易暴露自己,所以儘可能學會使用命令行操作會在滲透實際過程中有很大的幫助
  • 內網攻防經典技術備忘錄
    :)信息搜集nmap掃描實時存活的ipnmap 10.1.1.1 --open -oG scan-results; cat scan-results | grep "/open" | cut -d " " -f 2 > exposed-services-ips常用命令ipsping icmp連通性nslookup