Concat str thành byte Python 3

Xin chào. Vì vậy, tôi đã root 14 hộp đầu tiên của mình vào tuần trước và bây giờ tôi sẽ quay lại thực hiện lại chúng mà không cần metasploit. Lần đầu tiên tôi làm khập khiễng, điều này khiến tôi mãi mãi nhận ra rằng tôi chỉ cần thay đổi shebang thành python3 và chạy nó với python3. Tôi mệt mỏi với điều tương tự một lần nữa trên di sản, nhưng tôi nhận được lỗi

Tệp “ms17-010-khai thác. py”, dòng 83, trong
ntfea10000 = pack[‘
TypeError. không thể nối str thành byte"

Tôi cho rằng mình đã may mắn với Lame và không thể đơn giản thay đổi shebang và mong nó hoạt động mà không thay đổi cú pháp đã bị xóa/thêm trong quá trình chuyển đổi sang python 3?

Khi tôi thử chạy khai thác gốc […/bin/python] [Oracle 9i/10g - Evil Views Change Passwords - Multiple local Exploit] tôi nhận được

Nhập Lỗi. Không có mô-đun có tên impacket

Tôi đã thực hiện 'apt search imppacket' và tùy chọn phù hợp duy nhất là python3-impacket đã được cài đặt. Tôi đã mong đợi một tùy chọn cho python-impacket…Tôi khá bối rối về toàn bộ eol với python 1 & 2

Có thể việc khai thác thủ công là quá tiên tiến đối với tôi vào thời điểm này nhưng có vẻ như việc thực hiện các thay đổi nhỏ đối với mã khai thác là thủ thuật thực sự để khai thác các hộp chưa được vá nên tôi thực sự muốn có được điều này. Mọi sự trợ giúp sẽ rất được trân trọng

@ZanderMiller đã nói.

Tôi cho rằng mình đã may mắn với Lame và không thể đơn giản thay đổi shebang và mong nó hoạt động mà không thay đổi cú pháp đã bị xóa/thêm trong quá trình chuyển đổi sang python 3?

Bạn đã làm. Thông thường có rất nhiều thứ cần thay đổi. Ví dụ: print cần phải là print[], v.v.

Có một tập lệnh 2to3 có thể hữu ích nhưng giống như bất kỳ quy trình tự động nào, nó có thể bỏ lỡ những điều quan trọng

Trong vấn đề hiện tại của bạn, có thể là do cách python3 đã thay đổi cách xử lý chuỗi thành byte. Bạn có thể cần thêm một số bit .decode[] hoặc bạn có thể cần thực hiện một số thao tác khác, tùy thuộc vào bản chất chính xác của vấn đề

Trên thực tế, bạn cần xem qua tập lệnh và hiểu đầy đủ những gì nó đang làm, sau đó bạn có thể xác định các bit cần thay đổi

Rất hiếm khi đơn giản như thay đổi dòng đầu tiên

Tôi đã thực hiện 'apt search imppacket' và tùy chọn phù hợp duy nhất là python3-impacket đã được cài đặt

Tập lệnh của bạn có thể đang tìm thư viện python2. Nó bắt đầu trở nên lộn xộn khi bạn kết hợp các phần của python2 và python3 trong cùng một tập lệnh và bạn cần nói rõ mình đang gọi cái nào. Nếu bạn có python2 và python3, bạn có thể thấy python2 là mặc định, vì vậy nếu bạn chạy python script.py, nó sẽ bỏ qua dòng shebang và cố chạy với python 2

Dòng shebang chỉ thực sự quan trọng nếu bạn chạy tập lệnh dưới dạng tệp thực thi độc lập

Thay vì dựa vào apt-get cho impacket, hãy kiểm tra git repo. GitHub - SecureAuthCorp/impacket. Impacket là tập hợp các lớp Python để làm việc với các giao thức mạng

Có thể việc khai thác thủ công là quá tiên tiến đối với tôi vào thời điểm này nhưng có vẻ như việc thực hiện các thay đổi nhỏ đối với mã khai thác là thủ thuật thực sự để khai thác các hộp chưa được vá nên tôi thực sự muốn có được điều này. Mọi sự trợ giúp sẽ rất được trân trọng

Khai thác thủ công tạo ra sự khác biệt đáng kể giữa những người có thể nhấp-pwn và những người có thể tìm ra cách khai thác mục tiêu

Cám ơn phản hồi của bạn. Tôi đã thử 2to3 nhưng không gặp may. Tuy nhiên có vẻ như. mã hóa [] đang hoạt động. Vấn đề duy nhất là khai thác của tôi dài gần 600 dòng nên tôi không nghĩ là thêm thủ công. encode[] cho mỗi chuỗi là giải pháp khả thi. [btw Tôi đã không sao chép toàn bộ liên kết đến khai thác mà tôi đang sử dụng đó là Microsoft Windows 7/2008 R2 - 'EternalBlue' SMB Remote Code Execution [MS17-010] - Khai thác từ xa Windows]

Thay vì thay đổi nó từ python sang python3, tại sao tôi không thể chạy tập lệnh python gốc? . py' nó nói rằng tôi đang thiếu impacket, vì vậy tôi đã làm theo hướng dẫn bắt đầu nhanh trên liên kết bạn cung cấp và thử 'pip install impacket' nhưng nó chỉ nói rằng nó đã được cài đặt trong python3 [mặc dù tôi cho rằng pip3 là thứ cài đặt mọi thứ vào

Từ những gì tôi đọc được, có vẻ như python2 [tôi hiểu là python] không còn trên debian/kali nữa, và do đó cần được thêm thủ công. Tôi đã tìm thấy liên kết này Sử dụng Phiên bản Python EoL trên Kali. Tài liệu về Kali Linux nhưng nó nói “Khi chúng tôi muốn hoán đổi về Python 3, chúng tôi chỉ cần đặt toàn cầu thành hệ thống. ” và tôi quá non nớt để biết cách làm điều đó

Có đúng là tôi đang thiếu python2 hay tôi chỉ thiếu gói tin trong thư mục python2 thích hợp?

@ZanderMiller đã nói.

Thay vì thay đổi nó từ python sang python3, tại sao tôi không thể chạy tập lệnh python gốc?

Bạn có thể

Khi tôi thử 'python myscript. py' nó nói rằng tôi đang thiếu impacket, vì vậy tôi đã làm theo hướng dẫn bắt đầu nhanh trên liên kết bạn cung cấp và thử 'pip install impacket' nhưng nó chỉ nói rằng nó đã được cài đặt trong python3 [mặc dù tôi cho rằng pip3 là thứ cài đặt mọi thứ vào

Có khả năng pip mặc định của bạn là python3-pip. Cũng có khả năng con trăn mặc định của bạn là Python3

Từ những gì tôi đọc được, có vẻ như python2 [tôi hiểu là python] không còn trên debian/kali nữa, và do đó cần được thêm thủ công

Ok, mình từ chối nâng cấp Kali vì bản 2020 hỏng đăng nhập root nên không biết hiện tại thế nào

Tôi đã tìm thấy liên kết này Sử dụng Phiên bản Python EoL trên Kali. Tài liệu về Kali Linux nhưng nó nói “Khi chúng tôi muốn hoán đổi về Python 3, chúng tôi chỉ cần đặt toàn cầu thành hệ thống. ” và tôi quá non nớt để biết cách làm điều đó

Liên kết nói về việc sử dụng môi trường ảo python, đây là một ý tưởng hay và chắc chắn đáng để tìm hiểu nếu bạn muốn sử dụng python theo cách phức tạp

Tóm lại là bạn thiết lập môi trường ảo với pyenv rồi cài đặt python 2 vào môi trường. Sau đó, bạn có thể chạy tập lệnh [hoặc sử dụng pip để cài đặt mô-đun] cho python2 mà không phá vỡ cài đặt python3 trong môi trường trực tiếp của bạn

Điều này có thể giúp. GitHub - pyenv/pyenv. Quản lý phiên bản Python đơn giản

Có đúng là tôi đang thiếu python2 hay tôi chỉ thiếu gói tin trong thư mục python2 thích hợp?

Nó rất khó để nói. Hãy thử python2 --version và xem những gì nó nói

NÓ ĐÃ LÀM VIỆC. Tôi thực sự đánh giá cao sự giúp đỡ mà hai bạn đã cung cấp. Đây là bài đăng đầu tiên của tôi trên diễn đàn và tôi phải nói rằng thật tuyệt khi nhận được sự giúp đỡ từ cộng đồng và làm được điều gì đó hiệu quả sau khi đã dành quá nhiều thời gian để vò đầu bứt tai

TazWake, kiểm tra phiên bản để xem những gì đã được cài đặt là một trợ giúp rất lớn, tôi tiếp tục tìm trong thư mục usr/bin của mình và tất cả các thư mục python khác nhau chỉ khiến tôi bối rối hơn. Tôi nhớ đã xem qua toàn bộ phiên bản trước đây nhưng tôi hoàn toàn quên mất nó. Tôi cứ nghĩ rằng python2 hoàn toàn không có ở đó nhưng khi chuyển đổi -V và như HomeSun đã chỉ ra, nó ở đó, nó không có nhiều mô-đun, như pip

Làm cách nào để chuyển đổi chuỗi thành byte Python?

Chúng ta có thể sử dụng lớp Bytes có sẵn trong Python để chuyển đổi một chuỗi thành byte. chỉ cần chuyển chuỗi làm đầu vào đầu tiên của hàm tạo của lớp Bytes và sau đó chuyển mã hóa làm đối số thứ hai . Việc in đối tượng hiển thị biểu diễn văn bản thân thiện với người dùng, nhưng dữ liệu chứa trong đó là​ theo byte.

Bạn có thể nối byte không?

Phương thức concat[] của Lớp Bytes trong thư viện Guava được dùng để nối các giá trị của nhiều mảng thành một mảng duy nhất . Các mảng byte được nối này được chỉ định làm tham số cho phương thức này.

Làm cách nào để chuyển đổi int thành byte trong Python?

Một giá trị int có thể được chuyển đổi thành byte bằng cách sử dụng phương thức int. to_bytes[] .

Sự khác biệt giữa STR và byte là gì?

Đối tượng Byte là chuỗi Byte, trong khi Chuỗi là chuỗi ký tự . Các đối tượng byte ở dạng có thể đọc được bằng máy bên trong, Chuỗi chỉ ở dạng có thể đọc được của con người. Vì các đối tượng Byte có thể đọc được bằng máy nên chúng có thể được lưu trữ trực tiếp trên đĩa.

Chủ Đề