Guest User

Untitled

a guest
Jan 23rd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. #!/usr/bin/expect
  2.  
  3. proc help {} {
  4. global argv0
  5. puts ""
  6. puts "pop3.exp - connects to pop3 server using telnet"
  7. puts ""
  8. puts "usage: $argv0 <host> <user>"
  9. puts " it will prompt for password"
  10. puts ""
  11. }
  12.  
  13. set maskpw 1 ;# set to 1 to mask password using asterisks
  14. set interact 1 ;# set to 1 to enable user control after login
  15. set timeout 60
  16. log_user 0
  17.  
  18. set host [lindex $argv 0]
  19. set user [lindex $argv 1]
  20. set port "110"
  21.  
  22. if {[llength $argv] == 0} { help; exit 0 }
  23. if { $host == "" || $user == "" } { help; exit 1 }
  24.  
  25. set buf ""; set output ""
  26. if {[catch {eval spawn telnet $host $port} err]} {
  27. send_user "ERROR: $bin $host $port $err\n"
  28. continue
  29. }
  30. expect {
  31. "Trying *" { set buf "$expect_out(buffer)" }
  32. "Connection to *" { set buf "expect_out(buffer)" }
  33. "telnet: could not resolve *" { send_user "$expect_out(buffer)\n"; exit 1 }
  34. send_user "$buf\n"
  35. }
  36. expect {
  37. -re "\\+OK (POP3|Server) ready" { send_user "$expect_out(buffer)\n"; send "USER $user\r" }
  38. "*Connection closed*" { send_user "$expect_out(buffer)\n"; exit 1 }
  39. }
  40. expect "+OK" {
  41. send_user "$expect_out(buffer)\n"
  42. send_user "\nEnter password: "
  43. if { $maskpw == 1 } { stty -echo }
  44. expect_user -re "(.*)\n"
  45. stty echo
  46. send "PASS $expect_out(1,string)\r"
  47. }
  48. expect {
  49. "PASS *" {
  50. set buf "$expect_out(buffer)"
  51. if { $maskpw == 1 } {
  52. set regex {^[\r\n]{2}?PASS (\S*)[\r\n]{2}?.*}
  53. set passlen "[string length [regsub $regex $buf "\\1"]]"
  54. set output "[regsub $regex $buf [string repeat * $passlen]]"
  55. send_user "$output"
  56. } else {
  57. send_user "$buf"
  58. }
  59. }
  60. "*Connection closed*" { send_user "$expect_out(buffer)\n"; exit 1 }
  61. }
  62. expect {
  63. -re "\\+OK (server ready|Logged in)" {
  64. send_user "\n$expect_out(buffer)\n"
  65. if { $interact == 0 } {
  66. send "QUIT\r"
  67. } else {
  68. send_user "\nENABLING INTERACT...\n"
  69. send_user "POP COMMANDS: STAT, LIST, RETR n, DELE n, RSET, TOP msg n, QUIT\n"
  70. log_user 1
  71. interact
  72. exit 0
  73. }
  74. }
  75. -ex "-ERR LOGIN failed" { send_user -- "$expect_out(buffer)\n"; exit 1 }
  76. "*Connection closed*" { send_user "$expect_out(buffer)\n"; exit 1 }
  77. }
  78. expect {
  79. "+OK *" {
  80. send_user "$expect_out(buffer)\n"
  81. send_user "LOGIN SUCCESS: $host $user\n"
  82. exit 0
  83. }
  84. }
Add Comment
Please, Sign In to add comment